linux c socket编程中服务端如何判断客户端断开?

linglihai 2011-04-23 09:10:44
在windows下的socket编程,客户端或服务端可以通过获取FD_CLOSES消息来知道对方关闭了socket,那么纯C语言或者在linux下我们如何来获取对方关闭了socket的消息呢?
...全文
765 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eleven 2011-04-23
  • 打赏
  • 举报
回复
select 函数返回后,如果有下列的事件发生,其对应的套接字就会被标示:
(1)readfds集合
数据可读
连接已经关闭,重启或者中断
如果listen已经被调用,并且有一个连接未决,accept函数将成功
(2)writefds集合
数据能够发送
如果一个非阻塞连接调用正在被处理,连接已经成功
(3)exceptfds集合
如果一个非阻塞连接调用正在被处理,连接试图失败
OOB数据可读

关于心跳机制,是自己封装的应用层协议
linglihai 2011-04-23
  • 打赏
  • 举报
回复
你回答的很在点子上。不过我对select IO模型,跟心跳机制都不是很了解。能不能深入的介绍下呢,最好附端代码让我了解的更具体些。非常感谢
Eleven 2011-04-23
  • 打赏
  • 举报
回复
正常关闭还是意外终止呢?
正常的话,你可以用select IO模型
意外的话,你可以用心跳机制。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧