当前位置: 技术问答>linux和unix
Linux下Socket接收超时和主机端口 如何区分
来源: 互联网 发布时间:2017-03-25
本文导语: client连接到服务器后,等待数据,如果服务器不发送数据或者服务器断线 Recv返回值都是0。 如何区分服务器不发送数据或者服务器断线 | 保活定时器keepalive呢? | 只有收到对端发送的FIN分节,recv...
client连接到服务器后,等待数据,如果服务器不发送数据或者服务器断线
Recv返回值都是0。
如何区分服务器不发送数据或者服务器断线
Recv返回值都是0。
如何区分服务器不发送数据或者服务器断线
|
保活定时器keepalive呢?
|
只有收到对端发送的FIN分节,recv才返回0!
不发送数据的情况阻塞或者返回-1(errno==EAGAIN)
断线得分多种情况,看服务器是否发出FIN分节.否则同不发送数据一样.
|
用errno判断
|
不发送数据你就自己定个策略干掉它, 比如一定时间内未请求.
|
不发送数据部阻塞吗?如果用非阻塞IO,可以判断返回值,具体两种情况下返回值不一样
|
不发数据会堵塞在recv吧