winsock当我传4000字节的时候能正常接收,
可是调到6000字节的时候却实际只收到四千二左右
请问那些是丢了还是太大了收不了?

解决方案 »

  1.   

    winsock的缓冲区是8192字节,而且据说处理好的话,每次发送的数据大于这个数值仍能正常收发。楼主在winsock.senddata后有没有用doevents来强制把缓冲区的内容发出去啊?如果doevents了那么没道理接收不完整啊
      

  2.   

    谢谢啊 我还真的没用啊.....你把这个doevents给我说一下怎么用的~~
      

  3.   

    虽然你的winsock执行了senddata,但是这些数据一般并不会马上发送出去,而是放在缓冲区中的,所以有时会发生发送端发送了好几次接收端才接收到一次而且数据都连在一起的情况。你每次执行winsock.senddata后在后面加一句doevents的话不管缓冲区里有多少数据都会立刻发送出去。不过加上这个doevents后也许并不能解决你的问题,你先试试看吧