我正在使用TCP/IP在java中开发多客户机/服务器应用程序。我的服务器为每个clientSocket创建一个新线程(clientSocket = serverSocket.accept();)。问题似乎是为所有正在运行的线程了解彼此的方式(即用于向聊天室中的所有在线用户广播消息)的方式。当我的每个线程知道新用户何时连接到服务器以及用户何时断开与服务器的连接时,什么是有效的方式?具有多线程服务器(TCP/IP)的客户机/服务器聊天室
2
A
回答
0
我在你的位置会创建一个额外的队列线程,它具有对套接字线程和消息队列的引用。 所有的套接字线程都可以将消息排入队列线程,然后将消息发送到所有套接字线程(因此套接字线程需要对您的队列线程/队列进行引用 - 同步!)。因为你不得不期待ArryList?的套接字线程可以改变你必须使用迭代器迭代。
要回答你的问题的意见:性能
开始每个连接一个线程是相当激烈的资源(想象10.000连接)。所以还有其他的方法来处理它。
我会确定与米娜去:
的Apache MINA是一个网络应用程序框架,它可以帮助用户方便地开发高性能和高可扩展性的网络应用程序。它通过Java NIO提供了各种传输(如TCP/IP和UDP/IP)上的抽象事件驱动的异步API。
网上有很多关于MINA的教程。
也许它有点矫枉过正,但如果你有兴趣,这是值得的。
[编辑]
如果它应该是它只是10-15客户蛮好用的每个连接一个线程...
相关问题
- 1. 聊天服务器 - 客户端/服务器聊天Java作业
- 2. Java多客户端聊天服务器
- 3. UDP多客户端聊天服务器
- 4. 多线程多客户端聊天服务器
- 5. 具有多个客户端的聊天服务器
- 6. 多线程聊天服务器
- 7. vb.net多线程聊天客户端和服务器
- 8. Python:多客户端线程聊天服务器
- 9. 多线程客户端 - 服务器聊天,使用套接字
- 10. 客户端服务器tcp/ip聊天室应用程序
- 11. 客户端 - 服务器在Lua聊天
- 12. 同步:客户端,服务器聊天
- 13. 聊天客户端服务器C++
- 14. 客户端服务器聊天
- 15. 客户端 - 服务器聊天Twisted,Python
- 16. Java聊天客户端和服务器
- 17. (聊天)服务器和客户端
- 18. 服务器/客户端聊天
- 19. C++服务器客户端聊天
- 20. 聊天服务器客户端输出
- 21. Java客户端/服务器聊天
- 22. Java聊天服务器客户端
- 23. Java多服务器聊天
- 24. 的Java:多线程聊天服务器发送消息到只有1客户
- 25. 无法与聊天室服务器
- 26. 聊天服务器。线程问题
- 27. 使用Window服务或WCF制作聊天服务器(聊天服务器的.NET服务和聊天客户端的iOS应用程序)
- 28. java中的多线程客户端服务器聊天应用程序
- 29. 多线程服务器/客户端聊天应用程序中的ConcurrentModificationException
- 30. 具有多线程的客户端服务器
您startig为每个连接分配一个线程,然后想efficent?您希望在高峰时间使用您的应用程序有多少useres? –
这真的是一门大学课程,所以我会说最多10-15。顺便说一下,为每个连接启动一个新线程会有什么效率? – user2000920
我的帖子对你有帮助吗? :) –