小编Squ*_*gem的帖子

什么是用于创建多用户客户端 - 服务器应用程序的适当体系结构?

我正在开发一个需要单个服务器和大量客户端的应用程序.我正在使用Java套接字编程API来完成此任务.目前,我正在考虑重新构建我的应用程序的整个设计,因为我根本不认为它是以最有效的方式构建的,并且会欣赏一些针对最佳路径的指导.

目前的实施

我有一个ServerSocket位于端口5000,包含套接字的线程只是连续运行并接受任何连接.然后,它启动一个新的服务器线程(基于可用端口的同步表),该线程处理与该客户端的通信,然后ServerSocket.accept()再次阻塞.

从此主线程生成的线程也包含一个ServerSocket并用作一次处理多个连接的方法.

现在,客户端线程只是连接到端口5000,接收下一个可用端口作为回复,然后从端口5000断开连接(通过调用Socket.close()),并重新连接到服务器认为可用的端口.

我的问题

这是在单个服务器上处理多个客户端的最佳方式(或者更好,甚至更合理吗?)?或者我应该只是ServerSocket在所有可用的端口上打开并且只是不断地听?也许我尚未考虑过的事情?

附录

我正在尝试用非常大的客户端 - 服务器应用程序(如MMORPG或某些聊天应用程序)来考虑我的实现的可行性.例如,我试着问自己:"虽然这可能有用,但如果这个应用程序拥有庞大的用户群,它会是一个很好的解决方案吗?".话虽这么说,如果我能够看到它如何大规模地工作,比如数百万用户,我将更容易理解解决方案的最佳性质.

java sockets serversocket

5
推荐指数
1
解决办法
1137
查看次数

标签 统计

java ×1

serversocket ×1

sockets ×1