【问题标题】:Sockets - Connect two computers on the same network with no port forwarding?套接字 - 连接同一网络上的两台计算机而没有端口转发?
【发布时间】:2013-03-09 20:03:10
【问题描述】:

我很困惑。我找不到我的难题的具体答案。 我认为这适用于所有语言,但我正在专门用 Java 编写我的应用程序。

所以,我只是想连接两台在 SAME 网络上运行的独立计算机。

计算机“A”是服务器,计算机“B”是客户端。

当客户端连接时,我只想在服务器上显示一条消息。

我的问题: 是否可以在同一网络上连接两台 PC(一台是服务器,另一台是客户端),而无需任何类型的端口转发或其他 Internet 设置(某些防火墙设置除外)?另外,您必须使用什么 IP 来连接两台 PC?

非常感谢!

【问题讨论】:

  • 您只需要网络之间进行端口转发,而并非总是如此。

标签: java sockets networking ip


【解决方案1】:

您不需要端口转发。你需要在服务器上做的就是像

ServerSocket ss = new ServerSocket(KNOWN_PORT);
while(running) {
    executor.submit(new SocketHandler(ss.accept()));

在客户端

Socket s = new Socket(KNOWN_HOST, KNOWN_PORT);

【讨论】:

  • 太棒了,如果它是同一网络上的两台计算机,我必须使用什么作为 IP?本地主机??
  • 连接客户端时需要使用服务器的IP。我建议你找一本关于 IP 网络的入门系列并阅读它。
  • 您需要知道您尝试连接的主机的主机名。您可以使用它的 IP 地址作为其配置的 DNS 名称,也可以在客户端的 hosts 文件中添加一个条目。
  • 不,您只需要物理访问。 :>
  • ipconfig 会给你这样的输出: Ethernet adapter Local Area Connection: Connection-specific DNS Suffix 。 :链路本地 IPv6 地址。 . . . . : fe80::bd3d:447d:bc4e:db38%10 IPv4 地址。 . . . . . . . . . . :192.168.0.110 子网掩码。 . . . . . . . . . . :255.255.255.0 默认网关。 . . . . . . . . : 192.168.0.1 你想要 IPv4 地址
猜你喜欢
  • 2020-05-26
  • 1970-01-01
  • 1970-01-01
  • 2015-05-17
  • 2015-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-21
相关资源
最近更新 更多