读信号触发,但收到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))
{
/* 这两种情况都可认为是链路关闭*/
}
...
}
...
---------------------------------------------------------------
以判断一个连接为例
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连接展开,讲述读信号触发但收到0个字节数据的情况。以判断连接为例,给出了使用fd_set、struct timeval等进行操作的代码,通过select函数判断,若recv返回0或 -1 可认为链路关闭。
608

被折叠的 条评论
为什么被折叠?



