客户确实:
connect()
select()
getsockopt()
write()
直到这一刻,一切都很好。但是服务器需要几秒钟才能发回状态,我想在没有任何阻塞的情况下接收它。那么我应该如何检查服务器的响应是否可用?应该是
connect()
,然后是recv()
recv(sockfd, buffer, LINE_LENGTH-1, MSG_DONTWAIT);
select()
然后recv()
我无法找到一个明确的例子,或者说明它应该如何看待 客户方。
答案 0 :(得分:1)
另一个connect()然后recv()
当然不是。这将创建另一个连接,你将重新开始。
或只是recv(sockfd,buffer,LINE_LENGTH-1,MSG_DONTWAIT);
如果数据已经到达,那将会有效,否则它将返回-1 / EAGAIN / EWOULDBLOCK。
或select()然后recv()
那会有效。但是,阻塞模式读取的具有与在select中使用的超时值相同的超时值,设置为读取超时。
你的问题没有意义。您必须阻止数据到达,select()
或阻止recv()
。