社区
网络编程
帖子详情
如何判断一个TCP连接的状态?
fengcaho
2005-12-27 11:33:02
TCP协议中,一个连接是由两个socket连接完成,怎么样根据socket判断当前TCP连接的状态呢?比如是已经连接,还是在CLOSE_WAIT状态等等。
...全文
863
15
打赏
收藏
如何判断一个TCP连接的状态?
TCP协议中,一个连接是由两个socket连接完成,怎么样根据socket判断当前TCP连接的状态呢?比如是已经连接,还是在CLOSE_WAIT状态等等。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
iGoo
2005-12-31
打赏
举报
回复
用 SIO_KEEPALIVE_VALS 选项可以设置异常断线发生的错误
但是在win2k下如果c s间 2-3分钟没有通讯,会产生一个错误的
网络关闭。谁知道这是为什么么?
fengcaho
2005-12-30
打赏
举报
回复
oyljerry(【勇敢的心】→ ㊣如果·爱√㊣) :能不能讲讲heartbeat包?
softrain
2005-12-29
打赏
举报
回复
链路异常时还需需要发检测包的.因为此时send和recv WSASend,WSARecv返回正常的.
周江涛
2005-12-29
打赏
举报
回复
你不需要检测连接状态的。
send和recv WSASend,WSARecv等等,每个winsock的函数都有返回。什么时候调用失败,那就是什么时候断开了。
nntg
2005-12-29
打赏
举报
回复
用多线程不行吗?单独用一个线程来复杂连接状态的维护、检测
ddddh
2005-12-29
打赏
举报
回复
一般来说,如果是对方或者路由器死机,通信线路损坏什么的,使用recv是没有办法知道连接已经断开了。因为这个时候对方没有机会给你发送FIN信号。所以对recv来说,和TCP连接仍然存在但是对方没有给你发送内容是一样的。
我觉得能够识别这种情况要么是不是的发送一些keep alive的消息,要么使用超时,即超过多长时间recv没有收到数据,就认为TCP连接已经断开了。
oyljerry
2005-12-29
打赏
举报
回复
异常中断通过heartbeat包来监测
oyljerry
2005-12-28
打赏
举报
回复
api执行后 有返回 ,可以根据返回值等来判断状态等
chensuwen
2005-12-28
打赏
举报
回复
关注...
fengcaho
2005-12-28
打赏
举报
回复
我的意思是能够及时相应网络已经断开的信息
程序没有进行数据通信的时候,我不能使用recv函数检测TCP连接的状态吧,要是那样的话,因为需要检测网络状态的程序是发送数据包的,要是搞一个recv在里面,感觉乱了
而等到send出错的时候,网络可能已经断开很长时间了
softrain
2005-12-28
打赏
举报
回复
楼主的通讯协议怎么会那么乱呢?搞不懂.
fengcaho
2005-12-28
打赏
举报
回复
recv不好吧?
本来数据包该别的函数接收过去的
函数的处理感觉就乱了
周江涛
2005-12-28
打赏
举报
回复
对方断线,你的recv函数会返回
返回0:对方正常关闭
返回1:对方异外掉线
fengcaho
2005-12-28
打赏
举报
回复
我想不执行API判断,有没有方法?因为API执行的时候,数据通信协议就乱了
有没有其他方法?
chensuwen
2005-12-28
打赏
举报
回复
如果本来是连接是正常的,对方突然网络中断或断电,我在另一端如果及时检测到这种意外呢?
TCP
连接
状态
--如何
判断
一个
TCP
连接
是否可用
在使用一个长
连接
的
TCP
时,如果
TCP
服务器端接收到
TCP
的客户端
连接
过来后,接着服务器端的
TCP
节点需要对这个客户端进行数据收发,收发时需要
判断
这个SOCKET是否可用用,
判断
方法有多种; linux的5种方法,本人在使用...
TCP
连接
状态
-如何
判断
一个
TCP
连接
是否可用
在使用一个长
连接
的
TCP
时,如果
TCP
服务器端接收到
TCP
的客户端
连接
过来后,接着服务器端的
TCP
节点需要对这个客户端进行数据收发,收发时需要
判断
这个SOCKET是否可用用,
判断
方法有多种; 1.linux的5种方法,本人在使用...
SOCKET编程之一个端口如何建立多个
TCP
连接
?(用fork子进程、select、poll、epoll都是可以的)一个端口最大支持建立多少个
tcp
连接
?
文章目录文章1:不太清楚socket一个端口如何建立多个
tcp
连接
,这边转载一篇文章文章2:一台Linux服务器最多能支撑多少个
TCP
连接
?结论:socket服务端只用开一个端口监听(listen)socket请求就行,理论上来说,最大...
TCP
连接
状态
图解析
TCP
状态
图,展示的是
TCP
从
连接
建立到
连接
关闭的整个生命周期,
TCP
的
状态
转换以及处理流程。
TCP
面向的是端口,Linux里面可以通过 netstat -a命令查看
连接
状态
。...一个进程等待在那里,对外提供
连接
的服务
Linux系统下
判断
TCP
连接
状态
的几种方法
当客户端与服务端保持长
连接
时,客户端除了可以使用心跳包来确认
连接
状态
外,还可以使用一下几种方法: 使用recv() 函数
判断
使用recv() 函数的MSG_PEEK选项,使用这个选项可以“偷看(peek)”一下接收队列的数据。...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章