gpt4 book ai didi

java - 客户端服务器应用程序是如何实现的? (服务器端)(询问概念)

转载 作者:行者123 更新时间:2023-12-01 11:47:18 25 4
gpt4 key购买 nike

我正在制作一个简单的在线井字游戏(多人游戏)。其中客户端是java(android)服务器端是Python(共享托管服务器上的Linux)

我的问题是关于服务器端的:我首先想到有一个套接字(因为我只允许使用服务器上的一个端口),然后它等待 2 个用户连接并将它们配对在一起,启动一个新线程来处理它们,然后等待另外 2 个用户用户等。但在阅读了有关多线程的大量内容后,我发现服务器最多可以处理 20 个线程。所以我尝试使用进程而不是线程,但得到了相同的结果。而且,我发现套接字最多可以处理 50 个连接。

有什么想法吗?谢谢

最佳答案

为了无限制地扩展,如果你控制客户端代码(这样你就知道人们没有作弊——在井字游戏中他们不太可能这样做:-),你可以让客户端打开并提供用于连接的监听套接字——当有奇怪的客户端连接时,只需响应“请等待”消息;当偶数客户端连接以匹配它时,用彼此的监听套接字信息响应两个客户端,然后让开。

对于无法打开和监听新套接字(例如,隔离在某些 NAT 安排后面的套接字)的客户端来说,这不起作用。在这种情况下,您可以将客户端(为了它们之间的后续交互)切换到服务器之间的 UDP - UDP 不是面向连接的,可以为任意数量的客户端(客户端对,在您的服务器中)提供服务。情况!)在单个套接字上(但是你负责在客户端和服务器端合作!检查/确认数据包并确保它们的良好排序,TCP,是面向连接的,代表你处理:-) .

我不确定您的所有约束首先来自哪里,或者可能适用哪些其他约束(例如客户端无法打开、通信和监听新套接字...)。

但无论如何,一旦您完全理解并告诉我们所有适用的限制,一些解决方案总能找到(也许有了诸如 pub-sub 之类的新奇配置,例如 https://cloud.google.com/pubsub/docs ——只要新的约束出现就快,或者更快!聪明的家伙总是想出解决方法......!-)

关于java - 客户端服务器应用程序是如何实现的? (服务器端)(询问概念),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29056976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com