0

我创建了一个游戏,我想把它放到网上。我想买一个网站(我可能会用goddaddy买一个域名并用他们作为网络主机)作为服务器来处理游戏。因为每个游戏都需要一个单独的服务器,所以我需要每个游戏的服务器存在于不同的端口上。所以这引出了我的问题,是否可以在我未来的 Web 服务器上访问这些端口?(我用 Java 编写了程序,所以我假设我会通过为 ServerSocket 选择一个端口来从服务器端访问端口,并通过使用来自网站的 IP 地址和为 Socket 选择的端口从客户端访问这些端口)

(注意:另外,我知道简单地使用一个端口并在不同的线程上运行服务器可能更容易,但我只是好奇我的问题得到了回答)

非常感谢,伊恩

4

5 回答 5

2

从技术上讲,可以使用不同的端口,但我不认为像 goddaddy 这样的 webhoster 会让您运行绑定到特殊端口的 java 进程。

于 2011-01-18T14:03:07.963 回答
2

如果您的意思是要创建自己的 TCP 服务器,您显然可以创建尽可能多的服务器实例并将它们配置为侦听不同的端口。但现在是2011年。这个解决方案在 90 年代初期还可以。

我建议您使用通过 HTTP 工作的 Restful API。在这种情况下,您可以使用 URL 将调用转发到每个应用程序的服务器端,例如

http://www.lan.com/foo/login?user=u123&password=123456 - 登录应用程序 foo

http://www.lan.com/bar/login?user=u123&password=123456 - 登录应用栏

在这种情况下,您只需要一台正在侦听套接字(端口 80)的服务器(Web 服务器)。您的服务器端实现可以使用您选择的各种网络技术(php、java、asp.net 等)来完成。

于 2011-01-18T14:09:21.053 回答
1

是的,这应该有效。安全管理器允许连接到加载小程序的同一 IP 地址上的不同端口。

于 2011-01-18T14:02:00.253 回答
0

您的解决方案可能在理论上可行,我喜欢 AlexR 的解决方案。但是像 godaddy 这样的提供商不允许你在任何端口上运行 java 服务器。您将需要找出这样做的人。我发现成本从 5 美元/月上升到 20 美元/月左右,但你会得到一台更好(阅读速度更快)的机器。良好的祝愿, - MS。

于 2011-01-19T07:02:43.443 回答
0

您可以在所需的任何端口上运行 Java 服务器。每台服务器将接受一个端口上的传入请求。

正确的方法是简单地在一个端口上运行,每个连接都会实例化一个新的 servlet 实例(它恰好在自己的线程中运行),然后可以为该请求提供服务。您通常不需要运行单独的端口或担心​​并发性,特别是如果在连接之间共享的所有内容(例如一个游戏中的多个玩家)都是通过数据库读/写处理的。

您的主机(GoDaddy)必须允许您使用这些端口,但如果他们提供适当的托管(不是虚拟托管)并为您提供自己的 IP,那么您没有理由不能这样做。

于 2011-01-18T14:07:28.243 回答