大家好,你好! 我在实践中有关于选择模型的问题。本书的一些内容告诉我关于在选择模型中设置了无阻塞的套接字fd。我不知道原因。 就我而言,我可以知道客户端套接字fd是否可以通过FD_ISSET(fd_all [i],fd_readable_set)读取。所以,为什么我需要将客户端套接字fd设置为非阻塞? 有人告诉我为什么吗?谢谢!为什么需要设置客户端套接字fd在服务器上使用select进行非阻塞?
-1
A
回答
1
有时,在select()
确定它可读并且应用程序实际尝试读取它时,套接字发生变化。所以最安全的做法是让它不被阻塞,这样在你阅读时就不会被挂起。
如果您有多个进程或线程在同一套接字上调用select()
,可能发生的一种可能的方法是。当数据到达时,他们都会返回并尝试读取它,但只有第一个会成功。
+0
,在多个进程或线程中,一旦select函数返回所有进程或者threas都会收到一些fd_set.Is那么? –
+0
是的,如果他们都在等待可读的同一个FD。 – Barmar
+0
好的,我明白了,谢谢! –
相关问题
- 1. 非阻塞的客户端和服务器套接字用C
- 2. C套接字服务器,Java套接字客户端:阻塞!
- 3. 我为什么要使用非阻塞或阻塞套接字?
- 4. 将TCP客户端套接字设置为非阻塞:服务器vs客户端
- 5. 简单的服务器/客户端套接字:阻塞 - Java
- 6. 非阻塞服务器套接字(linux)
- 7. 服务器的非阻塞套接字
- 8. 为什么我的非阻塞Java服务器拒绝客户端连接?
- 9. 使用select与阻塞和非阻塞套接字的影响
- 10. 在阻塞连接之后设置非阻塞的套接字
- 11. 非阻塞套接字客户端连接
- 12. 为什么服务器/客户端套接字停止工作
- 13. ruby中的非阻塞tcp客户端套接字失败
- 14. Java非阻塞客户端
- 15. Java服务器和客户端套接字需要修复
- 16. BOOST-ASIO阻塞服务器不响应阻塞客户端?
- 17. Java套接字服务器阻塞
- 18. 如何避免使用套接字阻塞(聊天客户端)
- 19. 在多线程单服务器多客户端应用程序中阻塞套接字和非阻塞套接字
- 20. 为什么不直接连接到客户端的SQL服务器?为什么我们需要客户端 - 服务器模型中的应用服务器?
- 21. 如何在Python中实现非阻塞套接字服务器
- 22. 为什么要在边缘触发的epoll函数中使用非阻塞fd?
- 23. PHP套接字服务器/客户端
- 24. 客户端服务器udp套接字
- 25. 套接字java客户端服务器
- 26. 客户端 - 服务器套接字
- 27. 服务器/客户端套接字
- 28. 客户端服务器套接字C#
- 29. Python服务器客户端套接字
- 30. Java套接字客户端/服务器
一个完全没用的问题。 '有人告诉我'。什么书?告诉你*究竟是什么? – EJP
@ EJP,对不起,我没有一个清晰的描述。没有“某本书”,它是来自网络的一些数据。例如: http://www.cnblogs.com/zhuyp1015/archive/2012/05/31/2529203.html https://segmentfault.com/a/1190000003063859 –