我想做这样的事情:
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无法完成您想要的事情。