Java 无法连接到端口7

Java 无法连接到端口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

运行以下代码会引发异常:

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 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。。。