我使用 Sockets 用 Java 制作了一个网络游戏。它工作得很好,除了......只能通过我的局域网。:/ 我想要做的是设置它,以便我可以启动在我的家用计算机上运行的服务器并将客户端代码以可执行 jar 的形式发送给其他人,并让他们能够启动它并通过互联网连接。但就像......我不知道如何为此设置我的调制解调器和路由器。:( 我有一个无线 Clear 调制解调器,其配置页面如下所示:
http://imageshack.us/photo/my-images/254/modem.jpg
还有一个 Netgear 路由器,其页面如下所示:
http://imageshack.us/photo/my-images/443/routerq.jpg
现在,在客户端和服务器运行器类中,我将我的 PC 的私有 IP 地址以及我选择的端口号传递给 ServerSocket 和 Socket 对象。我听说套接字既可以是 UDP 也可以是 TCP,这取决于您如何设置它们,或者……?不过,我不做任何类似的事情,我只是实例化它们并将它们传递给 2 个值,然后它们就走了......
在服务器的代码中:
ServerSocket sock = new ServerSocket();
sock.bind(new InetSocketAddress(IP, 9001));
客户端代码:
Socket sock = new Socket(IP, 9001);
因此,我还需要知道如何根据路由器/调制解调器设置的更改相应地更改代码。
“IP”是一个字符串,表示我的计算机的私有 IP 192.168.1.10,并且该程序仅在我传递给 Socket 和 ServerSocket 的字符串时才有效。就像我说的,我有一个调制解调器,它连接到一个连接到我的计算机的路由器。那么,有人可以向我解释一下(详细说明,因为我是菜鸟)我究竟需要做什么来配置它们,以及我必须对我的代码进行哪些更改?