Eclipse运行相同的代码,跟直接用java命令行结果不一致!

最近碰到一个很莫名的问题,相同的代码
public class SocketTest extends Thread {

public static void main(String[] args){
    SocketTest thread=new SocketTest();
    thread.start();
}   
@Override
public void run() {
    System.out.println("start");
    String ip="192.168.3.97";
    int port=8455;
    System.out.println(ip);
    System.out.println(port);

    Socket socket = new Socket();
    try {
        socket.bind(new InetSocketAddress(InetAddress.getLocalHost().getHostAddress(), 8666));
        SocketAddress remoteAddr = new InetSocketAddress(ip, port);
        socket.connect(remoteAddr, 60000);
        System.out.println(socket);     
        System.out.println("end");
    } catch (UnknownHostException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }       
}

}

直接在windows的命令行通过java SocketTest能得到正确的结果
E:>java SocketTest
start
192.168.3.97
8455
Socket[addr=/192.168.3.97,port=8455,localport=8666]
end

但是在Eclipse里面运行就提示这样的错误
java.net.ConnectException: connect: Address is invalid on local machine, or port is not valid on remote machine
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at com.jetch.test.SocketTest.run(SocketTest.java:30)
Eclipse里面的install JREs已经跟javahome指定的是同一个文件夹了

构建server和client时忘从默认数组中args[]中将他们取出来。。。。。。。
网上的答案。。。