社区
Linux/Unix社区
帖子详情
在使用select() 函数时 怎样判断套接字连接状态(断开或连接)????
奔跑吧猴哥
2005-10-12 10:43:04
在使用select() 函数时 怎样判断套接字连接状态(断开或连接)????
...全文
2804
22
打赏
收藏
在使用select() 函数时 怎样判断套接字连接状态(断开或连接)????
在使用select() 函数时 怎样判断套接字连接状态(断开或连接)????
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cky41
2005-12-12
打赏
举报
回复
远程主机主动断开,select监视的socket马上会进入可读状态,然后会读到EOF(文件结束符)
如果是网线被拔(远程或是本地),哪只能通过超时判断了吧
wjlsmail
2005-10-26
打赏
举报
回复
Mark
LDD123
2005-10-26
打赏
举报
回复
拔掉网线导致无法通讯用select是监测不出的,
可以利用两边定时发心跳包来处理
LDD123
2005-10-26
打赏
举报
回复
如果FD_SET中的socket有数据或被断开的,会触发FD_SET中对应的读事件,
select会立刻返回,这时对这个socket进行recv,根据返回值是>0 =0就可
以判断是有数据还是连接被断开。
很土
2005-10-26
打赏
举报
回复
使用 select 函数后, 若是 Read 的 FDSet, 通过 FD_ISSET 判断是否收到信号, 若有信号则可以使用 recv(fd, @ch, 1, MSG_PEEK), 若接收尺寸为 0 则可以调用 close 关闭 socket
lirun
2005-10-21
打赏
举报
回复
异常中断,只能等待select超时,建议你使用send,recv函数族。
wohow
2005-10-13
打赏
举报
回复
有经验的人一看就知道你是怎么试的,可是你的测试涵盖多少环境?我只要举出一个反例就推翻你的结论,很遗憾,这个反例被我找到了。
奔跑吧猴哥
2005-10-12
打赏
举报
回复
TCP协义有判断超时的功能..在Windows下就有FD_CLOSE通知...
不知UNIX怎么处理????????
wohow
2005-10-12
打赏
举报
回复
单纯select函数做不到的。例如TCP连接上之后调用select,可是对方拔掉网线,select就监测不到。可以配合send试试。
奔跑吧猴哥
2005-10-12
打赏
举报
回复
回复人: tengulre(OpenSource) ( ) 信誉:100 2005-10-12 11:01:00 得分: 0
判断socket句柄是否大于0
----------------------------------------------------
socket句柄 在连接时就获得,怎么会改变呢???
yeehya
2005-10-12
打赏
举报
回复
判断是否连接正常,可以用一次通讯来测试,专门发送一个特定的包,等待一个特定的应答,只能这样老土吧.
yeehya
2005-10-12
打赏
举报
回复
faint,这个可以由自己定义的通讯协议来实现啊~
接受特定的命令类型,在client上在建立和退出时,发出相应的命令.如果是异常中断,只能通过超时来判断了吧.
是新手,能说的只有这些.
tengulre
2005-10-12
打赏
举报
回复
判断socket句柄是否大于0
奔跑吧猴哥
2005-10-12
打赏
举报
回复
难道没有高手???
chaolajiao
2005-10-12
打赏
举报
回复
vipiii 老兄, 你的方法很有效!
进来领分吧!!!!
http://community.csdn.net/Expert/topic/4322/4322297.xml?temp=8.353823E-02
vipiii
2005-10-12
打赏
举报
回复
to chaolajiao: 用strerror(errno)输出具体原因
^_^,wohow同志缺乏幽默感,就算我试错了,难道我不可以回这帖子么?
就算我不知道select的运行机制,难道我不可以回这帖子么?呵呵~
chaolajiao
2005-10-12
打赏
举报
回复
vipiii 真搞笑.
大家看看我的问题吧?
http://community.csdn.net/Expert/topic/4322/4322297.xml?temp=.993664 unix 下的socket 函数调用失败会写 errno. 哪位有 errno 的值 和 其对应意义 的 对照表???
vipiii
2005-10-12
打赏
举报
回复
很遗憾,我试过。
wohow
2005-10-12
打赏
举报
回复
vipiii(vipiii)有没有试过就说?知不知道select的运行机制?
vipiii
2005-10-12
打赏
举报
回复
对端断开时select会返回,有描述符可读。
这时read或recv会读到0字节。
要考虑超时和被中断的情况。
加载更多回复(2)
VS2017实现TCP socket多线程同步(C++)
select
函数
允许我们监控多个文件描述符(如
套接字
)的
状态
,当这些描述符准备好读取或写入
时
,
select
会返回。这使得服务器可以同
时
处理多个客户端的输入,而不会阻塞。 WSAEVENT是Windows操作系统中用于事件通知的...
FAQ-Socket.txt
#### 2.1 如何
判断
套接字
是否已在另一端关闭? 在TCP
连接
中,可以通过调用`recv()`
函数
来检查对方是否已关闭
连接
。如果返回值为0,则表示
连接
已经关闭。 #### 2.2 `bind()`
函数
中的第二个参数是什么意思? `bind...
套接字
连接
状态
检测
主动
断开
连接
主动
断开
连接
会发送,关闭事件 connec
函数
检测
连接
状态
,getlasterror ...设置
连接
或者发送超
时
,同步
套接字
超
时
设置 // platform-specific switch #if defined _WIN32 || defined WIN32 || defined
python tcp
连接
状态
判断
_
套接字
-如何
判断
python中的
连接
是否中断
套接字
-如何
判断
python中的
连接
是否中断我希望我的python应用程序能够知道另一侧的
套接字
何
时
被删除。 有办法吗?5个解决方案44 votes简短回答:
使用
非阻塞的recv()或阻塞的recv()/
select
() 超
时
时
间短。答案很长:...
怎么检测服务器
连接
状态
是否
断开
当
套接字
连接
断开
或有消息到达
时
,
select
()
函数
会返回相应的
状态
。当
连接
断开
时
,该
函数
可能返回一个错误代码, 可根据该错误代码
判断
连接
是否已
断开
。如果发送失败,该
函数
可能返回一个错误代码,可以通过检查该代码...
Linux/Unix社区
23,217
社区成员
74,540
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章