1

我已经使用 java 套接字编写了一个客户端和服务器。两台机器在同一个网络上。当我使用本地 IP 地址连接时,没有问题。但是,如果我使用公共 IP 地址,则连接超时,客户端抛出“SocketException:连接重置”,服务器抛出“SocketException:对等方重置连接:套接字写入错误”。大多数情况下都会发生这种情况,但一旦出现蓝月亮,连接实际上就会成功。我可以从客户端机器上成功地 ping 服务器本地地址和路由器。

我进入了我的路由器,为服务器机器分配了一个永久 IP 地址,并将相关端口上的所有流量转发到该 IP 地址。不幸的是,这是我认为可以解决问题的唯一方法,但事实并非如此。我也关闭了服务器上的windows防火墙,仍然没有运气。

客户:(IP取自whatismyip.com)

Socket s = new Socket("xx.xxx.xxx.xx", 27499);

连接。

服务器:

InetAddress ip = InetAddress.getLocalHost();
ServerSocket ss = new ServerSocket(27499, 0, ip);
Socket cs = ss.accept();

任何帮助,将不胜感激。如有必要,我可以提供更多代码。

4

1 回答 1

0

“SocketException:对等方重置连接:套接字写入错误”

这意味着服务器实际上正在拒绝连接,可能是防火墙问题,服务器拒绝连接,服务器实际上已关闭或过载。

于 2013-04-19T00:48:19.797 回答