想做一个SOCKET客户端,在不知道目的地的情况下,怎么能利用空闲端口打开一个SOCKET,是不是如下的实现方式:SocketServer fromSocketServer = new ServerSocket(0);
Socket socket = fromSocketServer.accept();如果不用SocketServer,直接用Socket来实现可以吗?

解决方案 »

  1.   

    Socket的取得有两种方法,一种是去连别人,二是自己做服务器接受别人的连接
    这二者都可以返回一个Socket引用
    1,Socket s=new Socket("192.168.1.5",5555);
    2,ServerSocket ss=new ServerSocket(10000);
    Soxket s=ss.accept();
    得到它们的端口就更简单了
    getPort() 
              返回此套接字连接到的远程端口。
    getLocalPort() 
              返回此套接字绑定到的本地端口。
      

  2.   

    第一,目的地现在不能知道,要以后才知道,
    可以用udp,或者就是serversocket
    第二,可用的空闲端口要用程序来获得,不是已经指定好的!
    for(int i=1024;i<=6000;i++){
    try{
    Socket s=new Socket("127.0.0.1",i);
    }catch(Expection e){
    System.out.println("端口"+i+"已经占用")
    }
    }
      

  3.   

    楼上的,你的这段代码我看到过,不过不能满足我的要求!
    我的帖子里说了,用下面的方法:
    SocketServer fromSocketServer = new ServerSocket(0);
    Socket socket = fromSocketServer.accept();可是现在不想用SocketServer,有没有别的方式能直接实现这个功能!