我想做这样的事情:

public void  myFun (String  tIps [])
{
    Socket  s = new Socket ();
    s.connect (new InetSocketAddress (serverIp, 80), 1000);

    for (int  i = 0 ; i < tIps.length ; ++i)
    {
        // Rebind the socket with another Ip
        s.bind (new InetSocketAddress (tIps [i], 0));

        /*
        *   use the socket
        */
    }

    s.close ()
}


但是我收到此错误:“ java.net.SocketException:已绑定”。
我尝试使用s.setReuseAddress(true),但是它没有任何改变。
有什么解决方法可以避免为每个请求打开一个新的套接字,这很长?

谢谢 !

最佳答案

那不是setReuseAddress的目的。该功能对应于经典的SO_REUSEADDR,它与重新使用其他进程最近正在监听的端口有关。

Java无法完成您想要的事情。

07-27 14:58