我正在开发一款多人游戏,我真的很想把它放到网上。
在网络方面,我有点笨,所以请耐心等待,因为我会尽力弄清这一点。
我有一个用作服务器的 C# 控制台。
IPAddress.TryParse( "127.0.0.1", out IPAddress iPAddress );
serverSocket.Bind ( new IPEndPoint ( iPAddress, 5555 ) );
我有游戏客户端
clientSocket.BeginConnect( "127.0.0.1"
, 5555
, new AsyncCallback( ConnectCallback )
, new Socket( AddressFamily.InterNetwork
, SocketType.Stream
, ProtocolType.Tcp
)
);
该游戏使用 XAMPP 的 SQL 数据库。在设置它时我发现你可以将你的 IP 地址变成一个网站,所以现在我想知道我是否可以使用我的公共 IP 地址来托管我的游戏,因为我可以通过输入它来访问我的本地主机浏览器。
我想我需要转发我的游戏端口并将服务器和客户端 IP 地址更改为我的公共 IP:5555,我的想法对吗?只是这样的事情从来没有看起来那么容易,所以我想我最好提前问清楚。
是的。它与 HTTP 或 SSH 使用的是同一类型的 TCP 连接。当整个 LAN 有一个公共 IP 时,您可以在自定义端口上为您的游戏服务器使用完全相同的“端口转发”机制,就像您在端口 80 上使用(例如)Web 服务器一样。
测试时,请记住
<public IP>
从同一个 LAN 内部连接会有点问题:如果它能正常工作,那么它通常会很奇怪地工作(即您的服务器不知道真实的客户端 IP 地址)。最后,游戏服务器是否使用SQL无关紧要。您的客户端只连接到游戏服务器,但不需要知道服务器内部做什么。从您的服务器应用程序到 SQL 数据库的连接是内部的,不需要为任何事情使用公共 IP 地址。