社区
Linux/Unix社区
帖子详情
客户端 socket 断开后 服务器端系统如何处理?
ets2008
2009-04-26 11:26:35
客户端主动断开后, 服务器端因为没有运行 send 或 recv ,检测不到socket的断开,所以没有执行close()操作, 请问,服务器的的系统会回收这个socket fd 吗?谢谢,linux系统
...全文
248
5
打赏
收藏
客户端 socket 断开后 服务器端系统如何处理?
客户端主动断开后, 服务器端因为没有运行 send 或 recv ,检测不到socket的断开,所以没有执行close()操作, 请问,服务器的的系统会回收这个socket fd 吗?谢谢,linux系统
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
猫已经找不回了
2009-04-26
打赏
举报
回复
你的服务器的子线程阻塞在recv 的撒,socket断开,你的客户端会自动发一个消息通知server,然后server就会有后续动作的。
ets2008
2009-04-26
打赏
举报
回复
谢谢,我明白了,等服务器处理完数据后,就发送,不管发送成功与否,都要clos()。
猫已经找不回了
2009-04-26
打赏
举报
回复
[Quote=引用 2 楼 ets2008 的回复:]
没有运行 recv 函数,服务器将数据处理完后,找到socket fd 再执行 recv, 并没有阻塞在recv 。
[/Quote]
你不阻塞,那就是用类似于select的复用咯。总之不管你怎么做,对面发包过来,你总得接收,所以可以收到client断开的消息。
ets2008
2009-04-26
打赏
举报
回复
使用了消息队列,因为线程id在不同的进程可能会重复,所以没有使用多线程;
ets2008
2009-04-26
打赏
举报
回复
没有运行 recv 函数,服务器将数据处理完后,找到socket fd 再执行 recv, 并没有阻塞在recv 。
Signalr即时通讯.Net MVC Demo 下载
SignalR当然也提供了非常简单易用的高阶API,使
服务器端
可以单个或批量调用
客户端
上的JavaScript函数,并且非常 方便地进行连接管理,例如
客户端
连接到
服务器端
,或
断开
连接,
客户端
分组,以及
客户端
授权,使用...
linux
socket
tcp server 解决
客户端
socket
断开
后,
服务器端
进程退出的问题(忽略SIGPIPE信号)
当服务器监听并接受一个
客户端
链接的时候, 可以不断向
客户端
发送数据, 这时如果
客户端
断开
socket
链接, 服务器继续向一个关闭的
socket
发送数据(send, write)的时候,
系统
会默认对服务器进程发送一个SIGPIPE信号, 这...
C#
Socket
客户端
断开
后
服务器端
没能判断
客户端
断开
在这样的情况下就出现了当python
客户端
断开
连接后,服务器这边的
Socket
没有抛出异常,博主以前的时候都是利用当
客户端
断开
连接的时候抛出的异常来检测是否
断开
连接。 在上述的情况下,服务器这边的对应的S
linux
socket
tcp server 解决
客户端
socket
断开
后,
服务器端
进程退出的问题
当服务器监听并接受一个
客户端
链接的时候, 可以不断向
客户端
发送数据, 这时如果
客户端
断开
socket
链接, 服务器继续向一个关闭的
socket
发送数据(send, write)的时候,
系统
会默认对服务器进程发送一个SIGPIPE信号, 这...
linux
socket
解决
客户端
socket
断开
后,
服务器端
进程退出的问题
最近做一个
socket
服务器时,发现如果强行关闭客户终端,server会接收到一些奇怪的信息然后非正常退出。 原因:强行关闭客户终端后,client进程交付给初始进程。等初始进程查询到client后将它杀掉。但是在杀掉之前,...
Linux/Unix社区
23,116
社区成员
74,506
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章