eclipse中的socket奇怪问题?

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.

1个回答

我的运行结果:
1,Eclipse(3.2.0)中运行:
a,网线未断开:
java.net.ConnectException: Connection timed out: connect
b,网线断开:
java.net.SocketException: Software caused connection abort: connect

2,cmd(Java build 1.5.0_13-b05)中运行:
a,网线未断开:
java.net.ConnectException: Connection timed out: connect
b,网线断开:
java.net.SocketException: Software caused connection abort: connect

没有看出你说的不一样。

在Eclipse建议 清除一些 项目,再重新 建立。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问