【发布时间】:2021-04-15 02:27:53
【问题描述】:
我打算用 Java 编写一个相对简单的客户端-服务器套接字程序,其中服务器将在一台机器上运行,而客户端在另一台机器上运行(两者都连接在同一网络上)。
Link two computers with Socket in Java.
根据上述问题的答案,我相信我需要进行端口转发(这不是我所知道的问题),但这确实违背了我的直觉,因为我认为端口转发只是必要的如果我需要从远程机器(不在网络上)连接到我的网络上的服务/机器/任何东西。
所以我的问题是,我是否需要端口转发才能在本地网络上的两台机器之间进行通信?如果是,为什么?
【问题讨论】:
-
不,很确定你是对的,只有外部网络连接才需要端口转发。如果它们在同一个网络上,您只需提供另一台设备的本地/私有 IP 地址 :)
-
我不确定是什么导致您得出该问题表明端口转发是必要的结论。这似乎是作为答案的 cmets 的一部分引入的混淆,这表明可能编写答案的人认为客户端和服务器在不同网络中的情况下(而不是本地防火墙(例如 Windows Defender)阻止一个端口)。
-
@dantechguy 我是这么认为的,谢谢你的澄清:)
-
@MarkRotteveel 我的困惑来自编写问题的人声称更改代码中的“localhost”并没有解决他们的问题。
标签: java sockets port portforwarding