所以我正在写一个基于游戏室,一般聊天等大堂视图的国际象棋比赛制度。到目前为止,我有一个工作原型,但我对一些事情有很大的怀疑与服务器做了。编写游戏大厅服务器对我来说是一种新的编程体验,所以我没有一个清晰而精确的编程模型。我也找不到描述它应该如何工作的论文。我从亚马逊订购了“Java网络编程第三版”,并仍在等待发货,希望本书能找到一些有用的示例/信息。Java-如何写一个大厅游戏服务器
同时,我想收集您的意见,看看您将如何处理一些事情,以便我可以学习如何正确编写服务器。以下是我头顶的几个问题:(可能会更多)
首先,让我们定义服务器的功能。它的主要功能是与客户端保持TCP连接,倾听他们产生的事件并将它们发送给其他玩家。但除此之外还有更多吗?
我应该为每个客户端使用一个线程吗?如果是这样,300个客户端= 300个线程。这不是太多吗?需要哪些硬件来支持?大厅消耗的带宽有多大?
应该使用什么样的数据结构来保存客户端的套接字?在迭代时如何保护它免受并发修改(例如,玩家进入或存在大厅),以便在不影响吞吐量的情况下调度事件? ConcurrentHashMap是这里的正确答案,还是有一些我应该知道的技巧?
当用户进入大厅时,您将使用什么机制将大厅的状态转移给他?在发生这种情况的同时,其他事件还会从哪里冒出来?
输入是非常感谢。谢谢!
感谢您的答复,但我不问问题为时过早;我已经有了一个工作原型。就测试而言,只要我能做到。问题是我需要实际的并发连接和用户做各种事情。我怎样才能做到这一点..? – user1021269