解决方案 »

  1.   

    recv(m_ServerSock, (char *)&chTemp, 4, 0); 你参数中不是说要接收4个字节码?
    应该是一个系统缓冲区,和socket缓冲区,你设置了socket的。
      

  2.   

    在以Unix为核心的一些操作系统中,SO_RCVBUF选项决定了TCP窗口的大小,你设置为多少窗口就为多少。对于客户端,SO_RCVBUF选项必须在connect之前设置;对于服务器,SO_RCVBUF选项必须在listen前设置。因为TCP的窗口规模选项是在建立连接时用SYN与对方互换得到的。在Windows上可以随时设置,一但设置后,会随着下一个ACK包,或者普通数据包通告给对方最新的TCP窗口大小,需要注意的是此时窗口只能增大,不能减小,也就是说SO_RCVBUF设置的比上一次小的话,该值是不会作为新窗口大小通告给对方的。
      

  3.   

    接收缓冲区大小的上下限分别是:256 * (sizeof(struct sk_buff) + 256)和256字节。
      

  4.   

    用while来接收,流末尾加结束符