无法连接到端口7

时间:2011-08-27 05:39:49

标签: java sockets echo

运行以下代码会产生异常:

  

D:\ books \ tutorial \ networking \ sockets \ examples> java EchoClient   连接被拒绝:连接

这实际上是来自java教程的代码(来自oracle) 我甚至尝试过从防火墙打开icmp eco请求,任何人都可以解释为什么这是在讨价还价?我使用的是Windows 7 32位

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();
    }
}

1 个答案:

答案 0 :(得分:1)

无论如何,在Unix计算机上,您必须具有超级用户权限(或多或少等同于Windows上的管理员权限)才能打开小于1024的端口号进行侦听。您可能正在遇到Windows上的等效问题。另一方面,仔细查看代码表明您尝试以客户端身份连接到该客户端,这不应该需要提升权限。

也许问题是没有服务(守护进程)监听端口 - 所以没有什么可以响应你的回应请求?