用select如何侦测TCP连接是否被对方关闭?

原创 2004年08月13日 10:47:00
读信号触发,但收到0个字节的数据  
---------------------------------------------------------------  
 
以判断一个连接为例  
 
fd_set  read_set;  
struct  timeval  t_o;  
...  
FD_ZERO(&read_set);  
FD_SET(lSockFd,&read_set);  
t_o.tv_sec  =  n;/*  超时秒数*/  
ret  =  select(lSockFd  +  1,&read_set,NULL,NULL,&t_o);  
if(ret  ==  1)  
{    count  =  recv(lSockFd,buf,LEN,0);  
     if((count  ==  0)  ¦  ¦(count  ==  -1))  
     {  
           /*  这两种情况都可认为是链路关闭*/  
     }  
     ...  
}  
...  

TCP socket如何判断连接断开

SO_KEEPALIVE是系统底层的机制,用于系统维护每一个tcp连接的。 心跳线程属于应用层,主要用于终端和服务器连接的检查。 即使SO_KEEPALIVE检测到连接正常,但并不能保证终端和服务...
  • yangyangye
  • yangyangye
  • 2014年03月24日 22:13
  • 14737

如何检查Socket是否断开

最近在做一个TCP采集程序,使用到C/S的结构。功能比较的简单,就是TCP采集程序作为服务器,信令采集设备作为客户端,客户端与服务器端之间建立长连接之后,开始发送信令报文给服务器。在服务器端使用多线程...
  • xiaoyafang123
  • xiaoyafang123
  • 2016年08月09日 15:37
  • 2594

如何判断socket已经断开

非阻塞模式,如果暂时没有数据,返回的值也会是 当使用 select()函数测试一个socket是否可读时,如果select()函数返回值为1, 且使用recv()函数读取的数据长度为0 时,就...
  • jsh13417
  • jsh13417
  • 2013年05月07日 21:57
  • 13408

侦测单IP是否为路由器,级联PC的原理

原文:传送门 话题不扯远。ISP宽带运营商是如何发现用户多台电脑共享宽带呢?   据相关人士透露,此前电信经常使用的产品包括网络尖兵、星空极速和南京信风,特别是网络尖兵最为常用。NetSn...
  • darkread
  • darkread
  • 2012年07月28日 15:21
  • 1388

[C#] 利用Keep-alive來保持Socket長連接,並偵測網路異常

今天工作時發現當Clinet端不正常斷線時, Server端竟然不知道!!!! 不知道Client端已經不存在了, 笨笨的繼續傳遞資料給Client(是我笨吧…Orz) 當然會導致程式發...
  • educast
  • educast
  • 2012年05月24日 11:52
  • 12884

[C#] 利用Keep-alive來保持Socket長連接,並偵測網路異常

转自:http://blog.csdn.net/educast/article/details/7597829 今天工作時發現當Clinet端不正常斷線時, Server端竟然不知道!!!! ...
  • u012252959
  • u012252959
  • 2016年01月06日 15:57
  • 337

android3.0侦测WIFI连接状态

由于工作需要,测试部门要求我们写一个程序能够侦测WIFI和BT(Bluetooth)的连接状态,我负责WIFI,另一个同事负责BT。 这里将写的侦测WIFI的代码贴上,希望对大家有用。 publ...
  • nuistchn
  • nuistchn
  • 2012年01月12日 17:05
  • 946

(三)TCP用select函数处理多个客户端连接(非阻塞模式)

这个程序,客户端们通过服务器进行群聊。 主要讲讲两点:1.怎么弄非阻塞模式 。 2.select的粗略讲解(心急的可以跳过,直接看后面代码) 首先,看看这个程序服务端设计的基本逻辑...
  • u014453898
  • u014453898
  • 2016年12月26日 19:53
  • 1342

一个支持tcp多客户端连接的例子,轻松认识linux select函数的基本原理和使用方法

这本是libmodbus-3.0.6中的一个例子,觉得是学习select很好的例子,注释了一下分享出来! #include #include #include #include #inclu...
  • zgrjkflmkyc
  • zgrjkflmkyc
  • 2015年08月28日 17:22
  • 2602

loaderrunner关于事件侦测为0的解决办法

.此处暂时抛开安装的问题,解决事件侦测为0的问题 问题现象:当在loadrunner创建好脚本指定对某个网页服务进行侦测,点击确定的时候,弹出来一个SQL Studio的调试框,说要IE需要调试...
  • liao_huan
  • liao_huan
  • 2011年09月21日 17:09
  • 577
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用select如何侦测TCP连接是否被对方关闭?
举报原因:
原因补充:

(最多只允许输入30个字)