按道理来说应该除了最后一次外,前面的传输应该都是8192字节的,但调试结果却显示并没有达到这么多,而是有时2000我,有时5000多,甚至有时只有几百。有没有什么办法让其每次传输8192字节从而提高速度?

解决方案 »

  1.   

    你要明白什么是"流"的概念。根据recv返回值判断是否收完,没有接受完,继续接收。
      

  2.   

    TCP会自动拆分或者合并连续多次发送的数据,只保证数据的顺序。如要提高效率可考虑用UDP协议。
      

  3.   

    典型的粘包接收不同大小牵扯到网速问题
    你在本地测试一下,看是不是每次都一样
    接收端判断接收到的大小,发送端判断发送的大小
    如果要实现你那个 可以试试用多个线程不断发送和接收每次发送和接收数据的大小,底层TCP是有规定的,具体大小GOOGLE下
      

  4.   

    [size=10px]这个不是你能决定的了的。下层协议会将其切片,然后封装再转发。你所做的只是累加每次返回值,根据总和判断是否已经接收完毕。[/size]