繁体   English   中英

互联网上的Java套接字

[英]Java sockets over internet

我已经使用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();

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM