在使用 recv() 之前检查数据是否可用
Check if data is available before using recv()
有没有一种方法可以在单个套接字上使用 select(),而不涉及 fd_set?
我想确保在使用 recv() 之前有一些东西要阅读,这样它就不会阻塞。或者使用 recv() 如果它立即可以 return 当没有什么可读的时候。
很遗憾,没有。
在不涉及至少一个 fd_set
的情况下使用 select()
的唯一方法是向 select
提供 3 nullptr
s (NULL
s)使用 timeout
参数有效地将 select
调用转换为 sleep
。
有没有一种方法可以在单个套接字上使用 select(),而不涉及 fd_set?
我想确保在使用 recv() 之前有一些东西要阅读,这样它就不会阻塞。或者使用 recv() 如果它立即可以 return 当没有什么可读的时候。
很遗憾,没有。
在不涉及至少一个 fd_set
的情况下使用 select()
的唯一方法是向 select
提供 3 nullptr
s (NULL
s)使用 timeout
参数有效地将 select
调用转换为 sleep
。