Java网络“拒绝连接:连接”

我一直在尝试让一个简单的网络测试程序无法运行。

服务器:

import java.io.*;

import java.net.*;

public class ServerTest {

public static void main(String[] args) {

final int PORT_NUMBER = 44827;

while(true) {

try {

//Listen on port

ServerSocket serverSock = new ServerSocket(PORT_NUMBER);

System.out.println("Listening...");

//Get connection

Socket clientSock = serverSock.accept();

System.out.println("Connected client");

//Get input

BufferedReader br = new BufferedReader(new InputStreamReader(clientSock.getInputStream()));

System.out.println(br.readLine());

br.close();

serverSock.close();

clientSock.close();

} catch(Exception e) {

e.printStackTrace();

}

}

}

}

客户:

import java.io.*;

import java.net.*;

public class ClientTest {

public static void main(String[] args) throws IOException {

final int PORT_NUMBER = 44827;

final String HOSTNAME = "xx.xx.xx.xx";

//Attempt to connect

try {

Socket sock = new Socket(HOSTNAME, PORT_NUMBER);

PrintWriter out = new PrintWriter(sock.getOutputStream(), true);

//Output

out.println("Test");

out.flush();

out.close();

sock.close();

} catch(Exception e) {

e.printStackTrace();

}

}

}

当我使用127.0.0.1或我的内部IP作为主机名时,该程序运行良好。但是,每当我切换到外部IP地址时,都会引发java.net.ConnectException:

Connection refused: connect错误。

我特意选择了一个不常见的端口,以查看是否是问题所在,但没有运气。使用telnet可以毫无问题地进行连接,但是当我尝试使用canyouseeme.org访问端口时,它表明连接超时。我什至尝试禁用所有防火墙和防病毒软件,包括Windows默认防火墙和路由器防火墙,并转发所有端口并启用DMZ,但它仍说连接超时。我将Comcast用作我的ISP,并且怀疑它们是否会阻塞这样的随机端口。

当我使用数据包跟踪器时,它显示我的计算机发送SYN并接收RST /

ACK时的TCP流量,因此它看起来像一个标准的阻塞端口,并且没有其他可疑的数据包流量在进行。

我不知道现在发生了什么。我几乎已经尝试了我所知道的所有技巧。如果有人知道为什么端口可能被阻塞,或者至少以某种方式使程序能够工作,那将非常有帮助。

回答:

对于它的价值,您的代码在我的系统上可以正常工作。

我不愿意这么说,但这听起来像是防火墙问题(我知道您已经对它进行了三重检查)或Comcast问题,这比您想象的要多。我会测试您的ISP。

以上是 Java网络“拒绝连接:连接” 的全部内容, 来源链接: utcz.com/qa/409634.html

回到顶部