当前位置:编程学习 > VB >>

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 ,  网络编程
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,