原帖由 sunceenjoy 于 2007-6-28 17:58 发表
/*str[1024]*/
while(recv(sock,str,1024,0)>0) {printf("%s",str);bzero(str,1024);fflush(stdout);}
就上面这个其实我不用循环一次也能读完,但用如果一次不能读完(str[10]的时候),while的时 ...
原帖由 sunceenjoy 于 2007-6-28 17:58 发表
/*str[1024]*/
while(recv(sock,str,1024,0)>0) {printf("%s",str);bzero(str,1024);fflush(stdout);}
就上面这个其实我不用循环一次也能读完,但用如果一次不能读完(str[10]的时候),while的时 ...
原帖由 sunceenjoy 于 2007-6-29 15:20 发表
是这么回事,我先向服务器发送一句,再接受返回的消息(recv),之后才发送第二句,再循环,直到全部发送结束。如果一直阻塞在那里,我怎么继续下面的啊,有人说设置不阻塞,我看recv最后一个好象没有这个功能啊。se ...
原帖由 福瑞哈哥 于 2007-6-29 15:32 发表
就你这个问题,至少有两个办法。
1:你可以加上协议头,比如用前面四个字节表示消息的长度,然后你只接收这个长度的消息。
2:发送端发送完消息关闭socket,然后双发再重新connect。
至于是否阻塞,都解 ...
原帖由 sunceenjoy 于 2007-6-29 15:20 发表
是这么回事,我先向服务器发送一句,再接受返回的消息(recv),之后才发送第二句,再循环,直到全部发送结束。如果一直阻塞在那里,我怎么继续下面的啊,有人说设置不阻塞,我看recv最后一个好象没有这个功能啊。se ...
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |