运行以下代码会导致异常:
拒绝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();
}
}发布于 2011-08-27 05:42:12
无论如何,在Unix机器上,您必须拥有超级用户权限(或多或少相当于Windows上的管理员权限)才能打开小于1024个端口号进行侦听。您很可能在Windows上遇到了类似的问题。另一方面,仔细查看代码就会发现,您正试图作为客户端连接到它,这不需要提升权限。
也许问题是没有服务(守护进程)监听端口-所以没有响应您的回显请求?
https://stackoverflow.com/questions/7212708
复制相似问题