免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: huhui_21cn
打印 上一主题 下一主题

socket通信奇怪问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2007-03-17 20:51 |只看该作者
原帖由 huhui_21cn 于 2007-3-17 19:25 发表
谢谢版主的解释 还有个问题 呵呵 就是在server端close socket后 在client端recv返回的是0,但是为什么在此之后 client端recv仍然返回0呢?

while(1)
{printf("while");
int a=recv(sockfd,buf,5,0);
if(a<0) {close(sockfd);exit(1);}
else printf("buf=%s",buf);
}

论坛徽章:
0
12 [报告]
发表于 2007-03-17 21:40 |只看该作者
原帖由 flw2 于 2007-3-17 20:51 发表

while(1)
{printf("while";
int a=recv(sockfd,buf,5,0);
if(a<0) {close(sockfd);exit(1);}
else printf("buf=%s",buf);
}

您的意思是因为client端中的close引起的嘛 我去掉后仍然如此 仍然不停地打印最后一次接受到的数据eth0
请您再说的详细点 谢谢!

论坛徽章:
0
13 [报告]
发表于 2007-03-18 11:02 |只看该作者
while(1)
{printf("while";
int a=recv(sockfd,buf,5,0);
if(a<0) {close(sockfd);exit(1);}
else printf("buf=%s",buf);


change to:
if( a == 0 ).

论坛徽章:
0
14 [报告]
发表于 2007-03-18 11:25 |只看该作者
原帖由 huhui_21cn 于 2007-3-17 21:40 发表

您的意思是因为client端中的close引起的嘛 我去掉后仍然如此 仍然不停地打印最后一次接受到的数据eth0
请您再说的详细点 谢谢!

我也不知道你的程序有多少个问题,可能是3个,但是我只注意到两个,或者有4个我只注意到两个。
你自己再找找嘛

论坛徽章:
0
15 [报告]
发表于 2007-03-18 20:29 |只看该作者
谢谢各位帮助!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP