vb 网络编程 遇到的 关于接收缓冲区问题
最近负责一个上位机程序(使用 vb winsock控件),该程序是用来对设备进行长时间检测的,几个小时,几天,几个月都有可能。在程序跑到接近2个小时的时候,发现一个奇怪的现象。 上位机程序接收到下位机 8192B的大小的数据,连续6帧,每帧间隔12ms-17ms之间。 与下位机程序员沟通后,确认下位机不可能在这么短的时间产生如此大的数据。 于是后来 查查资料 自己又想了下
情况可能是:
下位机发送的数据太快 上位机来不及处理。这些数据保存在操作系统Windows的网络缓冲区内,vb有时间处理时,会从自己的缓冲区读取数据,该数据应该是从操作系统Windows接收缓冲区内移过来的。vb最大的接收缓冲区为8192B 所以每次都在很短的时间内(10几ms)收到8192如此长的数据。
不知道其他人有何想法? vc的处理机制也是这样吗? vb 网络 编程 8192 大量数据 --------------------编程问答-------------------- 不会吧。像是程序设计的问题,有BUG. --------------------编程问答-------------------- 有可能的 wisock最大每次只可能接收8192B 超过这个长度的数据放在哪里? 肯定不可能放在wisock缓冲区吧 因为Getdata后 winsock缓冲区会被清空的 --------------------编程问答-------------------- 一定理解数据流的概念。8192字节的数据,会随机分多次传输。接收方只管从缓冲区里读就可以了。但是数据怎么分段,就需要提前自己定义了。
补充:VB , 网络编程