VB Winsock 问题,高手来看看

[复制链接]
查看11 | 回复1 | 2010-12-11 08:38:33 | 显示全部楼层 |阅读模式
我的程序要循环传送N个文件,代码大概意思是这样的:
发送端
do while'有未发文件则循环
发送文件名,大小
do while 这是死循环

如果 收到客户端 返回 "OK"退出循环
loop
发送文件
do while 这是死循环

如果 收到客户端 返回 "next"退出循环
loop
loop
接收端
if 收到文件名,文件长度then向服务器发送 OK
if 收到 文件接收完毕then向服务器发next
问题来了,如果 文件太小,服务器会在短时间内向服务器发送 OK和next(分2次发的)
但服务器接收到的却是“OKnext”,这样我没办法得到正确信息,导致程序进行死循环
VB牛人来帮个忙,解答一下
换成一句话就是连续用winsock 发送,如果速度太快的话,接收端不是单次接收,而是收到几次发送数据的总和,有没有什么什么办法可以解决这个问题,想用sleep 的就别说了
这个不是解决问题的根本办法,治标不治本。
什么是lv数据格式,没听说过呀
还有,如果取左边N个字符,那么第一个死循环是可以退出,但又进入下一个死循环了

回复

使用道具 举报

千问 | 2010-12-11 08:38:33 | 显示全部楼层
用lv数据格式:长度(比如2个字节)+数据这样接收端先读长度,再根据长度读数据即可
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行