gpt4 book ai didi

c - 如何检查非阻塞套接字客户端中的数据

转载 作者:行者123 更新时间:2023-11-30 15:24:44 24 4
gpt4 key购买 nike

客户端执行:

connect()
select()
getsockopt()
write()

直到这一刻一切都很好。但是服务器需要几秒钟才能将状态发回,而我希望在没有任何等待阻塞的情况下接收它。那么我应该如何检查服务器的响应是否可用?应该是吗

  • 另一个connect(),然后是recv()
  • 或者只是recv(sockfd, buffer, LINE_LENGTH-1, MSG_DONTWAIT);
  • select(),然后recv()

我找不到清晰的示例或良好的解释来说明它的外观客户端。

最佳答案

another connect() and then recv()

当然不是。这将创建另一个连接,并且您将重新开始。

or just recv(sockfd, buffer, LINE_LENGTH-1, MSG_DONTWAIT);

如果数据已经到达,则该方法有效,否则将返回 -1/EAGAIN/EWOULDBLOCK。

or select() and then recv()

那会起作用的。但是,阻塞模式读取的超时值与您在选择中使用的超时值相同,设置为读取超时。

你的问题根本没有意义。您必须在 select() 或阻塞 recv() 中阻塞,直到数据到达。

关于c - 如何检查非阻塞套接字客户端中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28282807/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com