社区
通信技术
帖子详情
请教面向连接的socket问题
horsehorse
2001-11-05 11:30:16
加精
面向连接的socket通讯时,如果一方突然掉电,来不及通知另一方,对方怎么知道此socket已经无效?
...全文
177
13
打赏
收藏
请教面向连接的socket问题
面向连接的socket通讯时,如果一方突然掉电,来不及通知另一方,对方怎么知道此socket已经无效?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
copy_paste
2001-12-09
打赏
举报
回复
听听
horsehorse
2001-11-07
打赏
举报
回复
算了,我看还是自己发心跳消息吧。
wwwunix
2001-11-06
打赏
举报
回复
另:保活分节的时间间隔一般为2小时,不过这个时间可以改变。
wwwunix
2001-11-06
打赏
举报
回复
select( 0, &readSocketSet, NULL, &errSocketSet, &timeout );
的第一个参数为测试的描述字的个数,它的值是要被测的最大描述字加一。
horsehorse
2001-11-06
打赏
举报
回复
设置SO_KEEPALIVE的代码如lurenfu所说,select检测的代码如下:
struct timeval timeout = { 0, 0 };
fd_set readSocketSet;
fd_set errSocketSet;
FD_ZERO( &readSocketSet );
FD_SET( hSocket, &readSocketSet );
FD_ZERO( &errSocketSet );
FD_SET( hSocket, &errSocketSet );
iRet = ::select( 0, &readSocketSet, NULL, &errSocketSet, &timeout );
关机后iRet的返回值还是0,即没有错误。
不知各位还有什么好方法?分不够可以再加,加个0都没有关系。
wwwunix
2001-11-06
打赏
举报
回复
在unix下修改内核参数:tcp_keepidle.
修改这个参数会影响所有用到保活分节的程序。
horsehorse
2001-11-06
打赏
举报
回复
听听课也是好的,请问能不能介绍一下UNIX下的设置?
wwwunix
2001-11-06
打赏
举报
回复
1、哦
2、我知道unix下的设置,windows下我不太清楚。:-(
horsehorse
2001-11-06
打赏
举报
回复
感谢木易兄的热心解答!
在MSDN中对select的第一个参数有如下解释:
nfds
[in] Ignored. The nfds parameter is included only for compatibility with Berkeley sockets.
似乎在Windows环境下设为什么值都可以。
另外“保活分节的时间间隔一般为2小时,不过这个时间可以改变”,不知应该如何设置?
wwwunix
2001-11-05
打赏
举报
回复
1、向掉电的一方发送数据时,可以检测出socket无效。
2、使用SO_KEEPALIVE套接口选项,也可以检测出socket无效。
lurenfu
2001-11-05
打赏
举报
回复
int sockfd, opt, len;
sockfd = socket( PF_INET, SOCK_STREAM, 0 );
opt = 0;
len = sizeof(opt);
setsockopt( sockfd, SOL_SOCKET, SO_KEEPALIVE, &opt, (socklen_t *)&len );
然后填充FD_SET的读和异常,用select读,出错异常会返回。
wwwunix
2001-11-05
打赏
举报
回复
设置SO_KEEPALIVE选项,然后用select读,则返回错误。
horsehorse
2001-11-05
打赏
举报
回复
请问如何使用SO_KEEPALIVE套接口选项?能否具体一点?多谢!
eNSP配置ssh登录失败的解决办法
1.
别再盲目复制粘贴了:彻底搞懂 Git、SSH 与 GitHub CLI 的底层
连接
奥秘
从一次星期四下午的发布卡顿,看透那些让我们多熬了三个夜的 Git 协议暗坑。
SSH学习笔记
目录 ssh学习笔记 一、主要学习资料 二、说明 三、关键点 (一)密码学基础 (二)数字证书与签名 (三)SSH原理与运用 ssh学习笔记 一、主要学习资料 1、RSA算法原理 2...
windows10下PowerShell远程ssh
连接
服务器&&界面美化
远程
连接
1.找到PowerShell win10环境下自动集成了PowerShell终端,只需搜索即可 进入界面需要以管理员身份运行 2.设置powershell 因为在win10 中powershell的执行策略是受限制的,所以更改策略 Set-ExecutionPolicy AllSigned 3.安装 安装Chocolatey工具管理包,能够方便的为我们下载安装软件。 在执行语句后输入“y” Set-ExecutionPolicy Bypass -Scope Process -
通信技术
4,397
社区成员
28,909
社区内容
发帖
与我相关
我的任务
通信技术
通信技术相关讨论
复制链接
扫一扫
分享
社区描述
通信技术相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章