【发布时间】:2015-03-15 03:37:25
【问题描述】:
我正在制作一个简单的在线井字游戏(多人)。 客户端是java(android) 服务器端是python(共享主机服务器上的linux)
我的问题是关于服务器端的: 我首先想到有一个套接字(因为我只允许使用服务器上的一个端口),然后它等待 2 个用户连接并将它们配对在一起,启动一个新线程来处理它们,然后等待另一个 2用户等等。 但是在这里阅读了很多关于多线程的信息后,我发现服务器最多可以处理 20 个线程。 所以我尝试使用进程而不是线程,但我得到了相同的结果。 而且我发现socket最多可以处理50个连接。
有什么想法吗? 谢谢
【问题讨论】:
-
你在哪里发现服务器只能处理 20 个线程.. 我认为这是错误的假设..
-
我觉得最大的问题在于套接字的工作方式,我必须在整个游戏过程中保持客户端连接。如果可以选择只发送一串数据而不建立可以解决问题的“连接”。
-
@Karthikeyan 我刚刚在我的服务器上尝试过,我使用主机 gator(最便宜的包)我想即使我购买更昂贵的主机,我仍然会受到数量的限制我可以拥有的线程数。例如,如果我有成千上万的玩家怎么办?
-
我建议您为此使用标准的 linux 节点,而不是共享主机 ..
-
如果您想扩展到成千上万的用户,只需不要编写自己的服务器 - 选择一个技术堆栈并在该堆栈之上实现您的应用程序。每个堆栈具体如何工作的细节差异很大(即随机选择两个,将 LAMP 与 node.js 进行比较,两种完全不同的方法)
标签: java android python multithreading sockets