社区
网络编程
帖子详情
如果得知一个TCP连接的remote端已经不在网络上了?
bbdolly
2007-03-07 11:28:55
一个TCP连接(中间可能会有NAT存在)
双方会有较长时间不相互发数据
在不使用一些非标准的方法的前提下(自定义的主动探测),如何得知对方已经不在网络上了?
...全文
386
7
打赏
收藏
如果得知一个TCP连接的remote端已经不在网络上了?
一个TCP连接(中间可能会有NAT存在) 双方会有较长时间不相互发数据 在不使用一些非标准的方法的前提下(自定义的主动探测),如何得知对方已经不在网络上了?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
anjuta_c
2007-03-15
打赏
举报
回复
SO_KEEPALIVE选项会影响系统上所有的套接字,还是不要更改的好,况且设置好SO_KEEPALIVE后实际上还是发送了“心跳包”,这样做和应用层发送“心跳包”有区别吗?
标准做法还是在应用层发送“心跳包”。可你看一下unix 网络编程卷1。
ouyh12345
2007-03-07
打赏
举报
回复
BOOL bKeepAlive = TRUE;
nRet = ::setsockopt(m_sockDesc, SOL_SOCKET, SO_KEEPALIVE, (char*)&bKeepAlive, sizeof(bKeepAlive));
if (nRet !=0)
{
sprintf(m_pszError, "Winsock error : %s (Error Code %d)\n", "Socket SetOpt failed", WSAGetLastError());
return FALSE;
}
//设置KeepAlive检测时间和次数
TCP_KEEPALIVE inKeepAlive = {0}; //输入参数
unsigned long ulInLen = sizeof(TCP_KEEPALIVE);
TCP_KEEPALIVE outKeepAlive = {0}; //输出参数
unsigned long ulOutLen = sizeof(TCP_KEEPALIVE);
unsigned long ulBytesReturn = 0;
//设置socket的keep alive为10秒,并且发送次数为3次
inKeepAlive.onoff = 1;
inKeepAlive.keepaliveinterval = 10000; //两次KeepAlive探测间的时间间隔
inKeepAlive.keepalivetime = 3; //开始首次KeepAlive探测前的TCP空闭时间
nRet = WSAIoctl(m_sockDesc,
SIO_KEEPALIVE_VALS,
(LPVOID)&inKeepAlive,
ulInLen,
(LPVOID)&outKeepAlive,
ulOutLen,
&ulBytesReturn,
NULL,
NULL);
if(SOCKET_ERROR == nRet)
{
sprintf(m_pszError, "Winsock error : %s (Error Code %d)\n", "Nonblocking socket call error", WSAGetLastError());
return FALSE;
}
这样发送的心跳包是必须要回的.
bbdolly
2007-03-07
打赏
举报
回复
如何在对方没有发送数据过来的时候,主动发送tcp的应答包啊?
这种主动发送的应答包,remote方会在应答回来么?
谢过~~
Elysium
2007-03-07
打赏
举报
回复
自定义的主动探测?
可以发送应答包吧,如果连应答包也不发送,简单的ping也不通呀
张友邦
2007-03-07
打赏
举报
回复
做网络应用的时候这样的问题会经常碰到,我以前的处理办法是,不管对方是否已经断开,当要通信的时候去处理相应的exceptions。这样也能解决你要求的对方连接状态的问题。
bbdolly
2007-03-07
打赏
举报
回复
win2000 vc6 下套代码可以用么?
为啥我用了之后抓包发现没啥变化,还是啥数据都没有啊
bbdolly
2007-03-07
打赏
举报
回复
win2000 vc 下套代码可以用么?
为啥我用了之后抓包发现没啥变化啊
Codeforces Round #431 (Div. 2) C. From Y to Y(补题)
看题忽略了这个玩意,忘掉他的功能了,导致一直没看懂题目 就是在
一个
集合中任取两个元素(每个元素也是
一个
集合),对于两个元素共同拥有的元素在取出的那两个元素中分别出现的次数的乘积就是花费 然后再将两个元素删掉,合并成
一个
元素再放进去 重复上述步骤,直到集合只有
一个
元素 f(s,a)∗f(t,a)+f(s,b)∗f(t,b)+f(s,c)∗f(t,c)+f(s,d)∗f(t,d)+......
Codeforces Round #431 (Div. 2) E. Goodbye Souvenir CDQ分治 或 离散化 线段树套树状数组
链接http://codeforces.com/contest/849/problem/E题意给nn个数,qq个操作,每个操作要么是把第pp个数的值改成xx,要么是询问[l,r][l, r]区间的各个值出现的第
一个
位置和最后
一个
位置差值的和思路自己没想到,看了这个博客后才明白了做法:http://www.cnblogs.com/ditoly/p/CF848C.html这题一维难以维护的地方是,
一个
点
【信息科学与工程学】【制造工程】第六十二篇 芯片封装01
①有效热导率:k_eff = k_matrix[(1+2φ(β-1)/(β+2))/(1-φ(β-1)/(β+2))],β=k_filler/k_matrix;:①热导率:k_parallel = V_f·k_f + (1-V_f)·k_m,k_perp = k_m·k_f/(V_f·k_m + (1-V_f)·k_f);②热导率:k_eff = k_m[(k_f+2k_m+2φ(k_f-k_m))/(k_f+2k_m-φ(k_f-k_m))];
【信息科学与工程学】计算机科学与自动化——第六十六篇 算子篇 第一章 通用算子01 多模态数据(图形/图像/文本/语音)中推断人类内在状态、策略、动机和利益的算法算子知识库
编号领域算法/方法算子名称算子的数学方程式/表达复杂度 (示例)关联知识11量子场论正则量子化产生/湮灭算符对易关系: [â_p, â†_q] = δ⁽³⁾(p - q)应用于态空间,计算复杂度取决于截断福克空间,粒子数表象,二次量子化12统计力学蒙特卡洛模拟马尔可夫链转移算子T(s → s‘) :满足细致平衡条件 π(s)T(s→s’)=π(s‘)T(s’→s)收敛到平衡分布需 ~O(τ), τ为相关时间细致平衡,Metropolis-Hastings准则,重要性采样13电磁学边界元法单层势/双层势算子
【信息科学与工程学】【数据科学】数据科学领域 第六篇 算法设计 01
算法设计
网络编程
18,356
社区成员
64,161
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章