Java 无法连接到端口7
运行以下代码会引发异常: D:\books\tutorial\networking\sockets\examples>JavaEchoClient 连接被拒绝:连接 这实际上是java教程(来自oracle)中的代码 我甚至尝试过从防火墙打开icmp eco请求,有人能解释为什么会发生这种情况吗?我使用的是32位windows 7Java 无法连接到端口7,java,sockets,echo,Java,Sockets,Echo,运行以下代码会引发异常: D:\books\tutorial\networking\sockets\examples>JavaEchoClient 连接被拒绝:连接 这实际上是java教程(来自oracle)中的代码 我甚至尝试过从防火墙打开icmp eco请求,有人能解释为什么会发生这种情况吗?我使用的是32位windows 7 import java.io.*; import java.net.*; public class EchoClient { public static v
import java.io.*;
import java.net.*;
public class EchoClient {
public static void main(String[] args) throws Exception {
Socket echoSocket = null;
PrintWriter out = null;
BufferedReader in = null;
try {
echoSocket = new Socket("localhost", 7);
out = new PrintWriter(echoSocket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(
echoSocket.getInputStream()));
} catch (Exception e) {
System.err.println(e.getMessage());
System.exit(1);
}
BufferedReader stdIn = new BufferedReader(
new InputStreamReader(System.in));
String userInput;
while ((userInput = stdIn.readLine()) != null) {
out.println(userInput);
System.out.println("echo: " + in.readLine());
}
out.close();
in.close();
stdIn.close();
echoSocket.close();
}
}
无论如何,在Unix计算机上,您必须具有超级用户权限(或多或少相当于Windows上的管理员权限)才能打开小于1024的端口号进行侦听。您很可能在Windows上遇到了同样的问题。另一方面,仔细查看代码表明,您正在尝试作为客户端连接到它,这不需要提升权限
可能问题是端口上没有服务(守护进程)在侦听-因此没有任何内容可以响应您的echo请求?嘿,我在哪里读到端口7是echo端口,我甚至尝试过添加防火墙例外,但仍然不起作用我修改了我的答案-可能问题是你没有配置回音服务。是的,现在服务器只运行需要的服务。您可以使用查看端口是否打开。@lol-您必须创建一个echo服务器,并将其设置为在某个端口上运行;)对于这个例子,我在javatutorial的网站上给出了,但问题是他们没有提到如何进行truobleshoot。。。