问题是这样的,我用下面的语句接收服务器发给我的包
其中
#define MAXBUFFERLEN 2048
char szRecvbuf[MAXBUFFERLEN]
if((numbytes=recv(clientsock,szRecvbuf,MAXBUFFERLEN,0)) == -1)问题是,如果服务器在很短的时间内给我发了两个包,我会同时收到两个包。
然后我的处理就会有问题
因为我应该按一个包一个包处理有人说,recv不可能同时收到两个包
这种说法对吗
其中
#define MAXBUFFERLEN 2048
char szRecvbuf[MAXBUFFERLEN]
if((numbytes=recv(clientsock,szRecvbuf,MAXBUFFERLEN,0)) == -1)问题是,如果服务器在很短的时间内给我发了两个包,我会同时收到两个包。
然后我的处理就会有问题
因为我应该按一个包一个包处理有人说,recv不可能同时收到两个包
这种说法对吗
还有一种办法可以这样做,在不想粘的包的地方,增加反馈数据.
例如:
一方:
send
recv
另一方:
recv
send
这样能够达到同步的效果(阻塞式socket)
但是我的实际情况是这样的
我在不同的线程当中用同一个socket传输数据
这样,我估计还是有可能会出现粘包的
/////////////////////要注意传输的同步问题