本来想使用select实现如下功能,一个服务器向几个客户端同步数据,向某一个客户端同步完数据后需要读取一次客户端的回复,但是不希望阻塞等待,感觉如果可以在需要读的时候将套接字加入select的读集合,并设置该套接字的读超时,如果该套接字超时后代表客户端没有成功回复信息。但是我不希望通过select的超时来实现这一点,因为select的超时有其他作用。但是发现这样好像并没有作用。即使设置了套接字的读超时,加入select后,仍然只有select的超时是有用的,而读超时好像被屏蔽掉了。感觉有些不合理。因为读已经超时了,也就是说读发生了错误,select应该返回可以读,然后调用read时报错是不是会比较合理。
select会屏蔽套接字本身设置的读超时
最新推荐文章于 2019-07-25 17:52:13 发布