有时候Socket通信时,收发数据会不全,可以这样规定一下
1 定义一个协议,比如数据长度+数据
这样接收数据的时候就知道接收多少个了
2写函数循环接收发送
int net_write(int hsock,const char* buf,size_t len)
{
for(int i = write(hsock,buf,len);i < len;i = write(hsock,buf,len))
{
if(i<0)
return i;
buf += i;
}
return len;
}
int net_read(int hsock,char* buf,size_t len)
{
for(int i = read(hsock,buf,len);i < c;i = read(hsock,buf,len))
{
if(i<0)
return i;
if(0==i)
return 0;
buf += i;
}
return len;
}