还有,我将一个文件读到richtextbox里,然后用winsock.senddata 发送
是不是不是一次发出的??因为在接受端产生了若干DataArrival事件
发送缓冲区能设为多大??

解决方案 »

  1.   

    在Internet上传输数据,你无法控制数据包到达的时间,因为你三次发送数据的间隔很短,所以可能是被一次发送,也可能是分三次发送一次性到达,你只能通过一些额外的控制字符来分隔数据.第二个问题里要看你发送的数据量大小,如果数据很大当然是分成几次发送的,发送缓冲区好象无法由WINSOCK控件来设定,默认值可能是4096BYTE
      

  2.   

    发送方式:
    如果发送包小于8k则发送一次。否则发送 
    len_data \ 8k +iif(len_data mod 8k=0,0,1)次
    执行了几次send方法。则按照上方法累加成几次
    接受方式:
    有时候发送了3次。但只接触发一个接收事件的原因是如下:
    windows是定期检测接收数据的缓冲区的。(虽然很短,但是如果连续发送几个包,可能这个时间刚好在2次检测之间!)。如果发现缓冲区有数据且处于一次发送完毕状态。则激发一个数据到达事件
      

  3.   

    我也遇到类似的问题,要是有答案的话,能告诉我嘛
    [email protected]谢谢