::recv(Socket,recvBuf,BUFFERMAXSIZE,0);
第一个参数是建立的socket
第二个参数是用来存储的recv数据的buf
第三个参数是允许最大的接收size而不是buf的size 但是buf的size一定要大于允许最大的接收size
第四个参数是设置recv timeout用好像是
主要说两点
一是当server发送数据调用send函数时,调用成功只是把该部分数据拷贝到发送缓冲区,接下来的工作是由Tcp/Ip协议发送数据的。
当server端的数据比Client端的数据长时 client端recv时是多包的
len = ::recv(Socket,recvBuf,BUFFERMAXSIZE,0);
if(len == BUFFERMAXSIZE)还可以接着recv 直到len < BUFFERMAXSIZE
二是当len = -1时,可能是socket关闭。
还有当建立的是TCP连接时,网络断开是recv是可以检测到的返回len = -1所以不用担心会挂起在recv中。