gpt4 book ai didi

Java套接字端口转发

转载 作者:搜寻专家 更新时间:2023-11-01 03:28:03 24 4
gpt4 key购买 nike

我使用套接字用 Java 制作了一个联网游戏。它工作得很好,除了......只能通过我的局域网。 :/我想要做的是设置它,以便我可以启动在我的家用计算机上运行的服务器,并将客户端代码以可执行 jar 的形式发送给其他人,并让他们能够启动它并通过互联网连接。但是就像...我不知道如何为此设置我的调制解调器和路由器。 :( 我有一个无线 Clear 调制解调器,其配置页面如下所示:

http://imageshack.us/photo/my-images/254/modem.jpg

还有一个 Netgear 路由器,它的页面是这样的:

http://imageshack.us/photo/my-images/443/routerq.jpg

现在,在客户端和服务器运行器类中,我将我的 PC 的私有(private) IP 地址以及我选择的端口号传递给 ServerSocket 和 Socket 对象。我听说套接字可以是 UDP 或 TCP,具体取决于您如何设置它们,或者其他......?不过,我没有做任何类似的事情,我只是实例化它们并向它们传递 2 个值,然后它们就消失了……

在服务器代码中:

ServerSocket sock = new ServerSocket();
sock.bind(new InetSocketAddress(IP, 9001));

客户端代码:

Socket sock = new Socket(IP, 9001);

同样,我需要知道如何根据路由器/调制解调器设置的更改相应地更改代码。

“IP”是一个字符串,表示我的计算机的私有(private) IP,192.168.1.10,只有当它是我传递给 Socket 和 ServerSocket 的字符串时,程序才能运行。就像我说的,我有一个连接到路由器的调制解调器,路由器连接到我的计算机。那么,有人可以向我解释(详细说明,因为我是菜鸟)我究竟需要做什么来配置它们,以及我必须对我的代码进行哪些更改?

最佳答案

您必须手动进行端口转发,或者查看 UPnP 或 NAT-PMP 等解决方案以实现自动端口转发。不幸的是,NAT 配置起来很麻烦,而且大多数路由器都不能正确支持它。这也不是一项简单的任务,因为您必须支持各种不同的实现和机制。

不过,将路由器设置为将一个端口转发到您的计算机应该不会太困难。参见 http://portforward.com/有关如何在几乎所有路由器上执行此操作的精彩列表。

关于Java套接字端口转发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8167512/

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