免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1966 | 回复: 8

[Linux] linux网络编程 [复制链接]

论坛徽章:
0
发表于 2012-07-24 11:40 |显示全部楼层
大家好:我现在在学linux的网络编程,即使用socket编程:
当我创建了一个客户端和一个服务端的时候。他们能正常通讯。
但是如果我其中的一个(比如说客户端)关闭,服务端就不正常了。
就一直显示乱码了。碰到这种情况我如何让服务端知道客户端已经关闭,然后自己关闭呢。

论坛徽章:
2
2015年亚洲杯之日本
日期:2015-03-25 11:21:322015亚冠之柏太阳神
日期:2015-07-13 10:36:04
发表于 2012-07-24 14:10 |显示全部楼层
楼主可曾听说过 心跳包 ? 可以查查看

论坛徽章:
0
发表于 2012-07-24 15:00 |显示全部楼层
回复 2# fengfengdiandia


    心跳包难道就是传说中的:A心脏跳一下,告诉B自己没有挂,B心脏也跳一下,告诉A自己没有挂,互报平安么?

论坛徽章:
2
2015年亚洲杯之日本
日期:2015-03-25 11:21:322015亚冠之柏太阳神
日期:2015-07-13 10:36:04
发表于 2012-07-24 15:09 |显示全部楼层
嗯,可以这么理解,不过是有时间限制的。对于楼主的这种情况,一般是由客户端主动向服务器端发包。回复 3# _Rayx


   

论坛徽章:
0
发表于 2012-07-24 15:30 |显示全部楼层
简单的就不用心跳了,
如果一端使用close关闭了sockfd.
那么另一端read时返回值为0, 或者在第2次write(recv)时的出错,且受到SIGPIPE

既然你在学网络编程,哪《unix网络编程》你没看??上面讲的很清楚的

论坛徽章:
0
发表于 2012-07-24 15:32 |显示全部楼层
至于服务器端乱码的问题,你仔细看看自己的服务器端的代码处理。

论坛徽章:
0
发表于 2012-07-24 15:36 |显示全部楼层
似乎有些头绪了。谢谢大家了。

论坛徽章:
0
发表于 2012-07-25 21:12 |显示全部楼层
感觉这里不适合心跳包 !

论坛徽章:
0
发表于 2012-07-26 09:58 |显示全部楼层
客户端关闭了,服务器给客户端发送的包客户端会以RST返回。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP