gpt4 book ai didi

java - 需要在 2 个不同端口上运行的 Java ServerSocket 和 Socket(Client) 之间进行连接

转载 作者:行者123 更新时间:2023-12-01 13:18:53 27 4
gpt4 key购买 nike

我正在尝试使用 Java Socket 在两台不同的机器之间进行连接。服务器和客户端套接字上的 TCP 端口不同,如下所示,

ServerSocket sourceSocket = new ServerSocket(8080, 10, InetAddress.getByName("192.168.1.2"));

在同一台机器上我还运行客户端 Socket

destSocket = new Socket(InetAddress.getByName("192.168.1.3"), 49984);

在两台不同机器之间的上述情况下,是否可以在端口 8080 和 49984 之间发送/接收数据包/数据。这需要 NAT 吗?

最佳答案

同一机器上的两个端口之间发送数据包不需要任何类型的 NAT,或者实际上任何网络 - 您根本不需要连接到互联网。通过在同一台机器上的不同端口上打开两个套接字,您可以在这两个套接字之间发送数据,而无需进一步配置。

为了从机器#1发送到不同机器(称为机器#2),您必须在机器#2上打开一个套接字(通过在另一台机器上运行代码)已准备好接受来自机器 #1 上的套接字的传入数据。此外,客户端套接字必须将数据发送到正确的 IP 和端口 - 因此,当您使用 new Socket 打开端口时,您定义了套接字的地址,但是不是发送数据的地方。

因此,虽然这些命令或多或少是正确的,但一个必须在机器 #1 上运行,一个必须在机器 #2 上运行,以便在两者之间发送数据。您还必须确保客户端将数据发送到服务器的地址,而不是它本身 - 打开端口定义数据将发送到的位置,仅>来自

关于java - 需要在 2 个不同端口上运行的 Java ServerSocket 和 Socket(Client) 之间进行连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22214816/

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