我想要做這樣的事情:Java:重新使用具有不同IP的綁定套接字?
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),但它並沒有改變任何東西。 有沒有什麼解決方案可以避免爲每個請求打開一個新的套接字,這很長?
謝謝!
你爲什麼試圖以這種方式重新使用套接字?如果您有一些數據位於緩衝區但尚未讀取,那麼您會如何處理這些數據?通常,爲每個連接創建一個新的套接字。 –