首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

Linux上Socket接收超时和主机端口 怎么区分

2013-01-11 
Linux下Socket接收超时和主机端口 如何区分client连接到服务器后,等待数据,如果服务器不发送数据或者服务

Linux下Socket接收超时和主机端口 如何区分
client连接到服务器后,等待数据,如果服务器不发送数据或者服务器断线
Recv返回值都是0。
如何区分服务器不发送数据或者服务器断线

只有收到对端发送的FIN分节,recv才返回0!
不发送数据的情况阻塞或者返回-1(errno==EAGAIN)
断线得分多种情况,看服务器是否发出FIN分节.否则同不发送数据一样.

引用:
client连接到服务器后,等待数据,如果服务器不发送数据或者服务器断线
Recv返回值都是0。
如何区分服务器不发送数据或者服务器断线

[解决办法]
用errno判断
[解决办法]
不发送数据你就自己定个策略干掉它, 比如一定时间内未请求.
[解决办法]
引用:
引用:只有收到对端发送的FIN分节,recv才返回0!
不发送数据的情况阻塞或者返回-1(errno==EAGAIN)
断线得分多种情况,看服务器是否发出FIN分节.否则同不发送数据一样.
引用:client连接到服务器后,等待数据,如果服务器不发送数据或者服务器断线
Recv返回值都是0。
如何区分服务器不发送数……

不发送数据部阻塞吗?如果用非阻塞IO,可以判断返回值,具体两种情况下返回值不一样
[解决办法]
不发数据会堵塞在recv吧

热点排行