菜鸟问题,在TCP模式下,使用Send("hello",20),函数的返回值是20,请问,在什么情况下,返回值会小于20?

解决方案 »

  1.   

    不停send,导致发送buffer满了。很容易的。
      

  2.   

    char szHello[] = "hello";
    Send(szHello,strlen(szHello));
      

  3.   

    同意sans(sans)
    返回值是说明你已成功发送了多少字节
    参数20是说明你想要发送多少字节
      

  4.   

    用getsockopt可以知道发送、接受等缓冲的长度,一般来说,如果发送的长度不超过缓冲的长度,都可以成功发出去的。
    只有当发送的数据长度大于缓冲时,才会出现成功发送的数据比要发送的少等问题。