运行以下代码会产生异常:
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();
}
}
答案 0 :(得分:1)
无论如何,在Unix计算机上,您必须具有超级用户权限(或多或少等同于Windows上的管理员权限)才能打开小于1024的端口号进行侦听。您可能正在遇到Windows上的等效问题。另一方面,仔细查看代码表明您尝试以客户端身份连接到该客户端,这不应该需要提升权限。
也许问题是没有服务(守护进程)监听端口 - 所以没有什么可以响应你的回应请求?