VB 怎样清除Winsock缓存数据

ajunajun 2017-08-29 01:51:10
我在写一个自动监控程序
可能由于网络较慢,第一次发送的指令在规定的时间内通过winsock.getdata没有读取到文本数据,第二次又发送了另一个指令,结果把第一次指令得到的数据当成了第二次的指令的了(两次指令获得的内容不同),造成了分析第二次的数据时出错。
我不想要第一次指令的数据,如何清除掉Winsock以前缓存里的数据呢?
比如说:发送第一次指令应该得到了“a”,但在规定的时间内通过winsock.getdata没有得到a,由于对方仪器规定30秒内不发送其它指令连接就自动断开,所以我规定在26秒内如果getdata不到“a”就执行第二个指令。但不知道什么原因(可能是网络慢),发送第二个指令时想得到“b”时,却得到了“a”,这时我已经不想要“a”了,怎么才能把缓存清除从而得到“b”。
...全文
1044 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
脆皮大雪糕 2017-08-30
  • 打赏
  • 举报
回复
根据现象描述,建议先确认一下,是不是对方发过来的的确就是a。 开个第三方的sniffer之类的程序,抓取一下整个通讯过程中双方的数据往来。别是对方发了个a,你在自己这边狂找问题。
赵4老师 2017-08-29
  • 打赏
  • 举报
回复
参考2楼 。
ajunajun 2017-08-29
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
楼主似乎应该使用UDP协议。
仪器有规定,只能用HTTP协议
引用 1 楼 Chen8013 的回复:
这不是“缓存数据”的问题吧! 那个“服务器端”程序是你自己写的吗? 如果是,可能你应该重新构建一下逻辑。 如果不是你自己写的,那可能就不好办了。
程序是我自己写的,不是“缓存数据”的问题,是什么问题啊,有解决办法吗?
赵4老师 2017-08-29
  • 打赏
  • 举报
回复
楼主似乎应该使用UDP协议。
赵4老师 2017-08-29
  • 打赏
  • 举报
回复
不知道有多少前人掉在TCP Socket send(人多)send(病少)send(财富) recv(人多病)recv(少财富) 陷阱里面啊! http://bbs.csdn.net/topics/380167545
舉杯邀明月 2017-08-29
  • 打赏
  • 举报
回复
这不是“缓存数据”的问题吧! 那个“服务器端”程序是你自己写的吗? 如果是,可能你应该重新构建一下逻辑。 如果不是你自己写的,那可能就不好办了。

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧