首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaSocket连接超时

JavaSocket连接超时
EN

Stack Overflow用户
提问于 2018-09-24 03:20:04
回答 1查看 636关注 0票数 0

我正在使用Java Sockets创建一个加密的通信终端。我的问题是,当我通过"localhost“或我的计算机LAN地址连接时,程序可以完美地连接并按预期工作,但当我使用我的公共IP地址连接时,连接被拒绝,并且我收到

源连接:连接超时:在java.base/java.net.DualStackPlainSocketImpl.connect0(Native方法)在java.base/java.net.DualStackPlainSocketImpl.socketConnect(Unknown源)在java.base/java.net.AbstractPlainSocketImpl.doConnect(Unknown源)在java.base/java.net.AbstractPlainSocketImpl.connectToAddress(Unknown源)在java.base/java.net.AbstractPlainSocketImpl.connect(Unknown源)在java.base/java.net.PlainSocketImpl.connect(Unknown )在

java.net.ConnectException源)在java.base/java.net.SocksSocketImpl.connect(Unknown源)在java.base/java.net.Socket.connect(未知源)在java.base/java.net.Socket.connect(未知源)在java.base/java.net.Socket(未知源)在java.base/java.net.Socket(未知源)在net.wolvenservices.clientcomms.Launcher.main(Launcher.java:27)

下面是我的服务器的main方法:

代码语言:javascript
复制
try{
   serv = new ServerSocket(200);
   sock = serv.accpet();
   System.out.println(sock.getInetAddress() + ": user has connected");
   in = new DataInputStream(sock.getInputStream());
   out = new DataOutputStream(sock.getOutputStream());
}catch(IOException e){e.printStackTrace();}

客户端的main方法

代码语言:javascript
复制
try{
   sock = new Socet("[MyPublicIP]", 200);  //this is line 27
   in = new DataInputStream(sock.getInputStream());
   out = new DataOutputStream(sock.getOutputStream());
   ...
catch(IOException e) {e.printStackTrace();}

我不给MyPublicIP的原因是明显的安全原因。

编辑:是的,我已经测试了port机器,我已经测试了telnet,我已经使用了禁用的windows防火墙和端口转发,甚至为这台特定的机器启用了DMZ。

EN

回答 1

Stack Overflow用户

发布于 2018-09-24 04:55:45

您可以尝试自己设置超时。

有一个public synchronized void setSoTimeout(int timeout)方法。

A timeout of zero is interpreted as an infinite timeout.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52469469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档