我可以创建多个线程来支持套接字编程中的多客户端功能;那工作正常。但是如果要连接10000个客户端,我的服务器就无法创建那么多线程。
我如何管理线程以便我可以同时收听所有这些客户端?
此外,如果在这种情况下服务器想要向特定客户端发送某些内容,那怎么可能呢?
最佳答案
您应该研究用于非阻塞网络编程的 Java NIO(“新 I/O”)库。 NIO 旨在精确地解决您所面临的服务器可扩展性问题!
- 关于 NIO 的介绍文章:Building Highly Scalable Servers with Java NIO
- 摘自 O'Reilly 的 Java NIO书
关于Java Socket 编程不适用于 10,000 个客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/700072/