import java.net.*;
import java.io.*;
class SocketDemo
{
public static void main(String[] args)
{
try {
Socket s = new Socket("192.168.2.119",10003);
System.out.println(s.isConnected());
System.out.println("s="+s);
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
首先,这个ip地址并不在局域网中存在,也没有一个服务端在监听10001端口,可是结果却是:
true
s=Socket[addr=/192.168.2.119,port=10003,localport=3642]
甚至把网络拔掉,结果也一样。
而我理解的socket的在建立对象时就已经去和服务单进行连接请求,如果服务端连接不上,会出现异常。
可是结果却是连接成功。
把这个java文件在DOS 命令行中,通过原始的javac编译在通过java运行,结果是:
网线未断开:
java.net.ConnectException: Connection timed out: connect
网线断开:
java.net.NoRouteToHostException: No route to host: connect
哪位兄弟可以解释一下,为什么在eclipse中却出现的是连接成功的结果呢??
注:用的是同一个JDK.