我正在用Java編寫套接字程序,有時會出現此錯誤。我有一些問題:一些與「使用中的地址:JVM_Bind」有關的問題
1)我使用Eclipse來運行我的套接字應用程序,並最後點擊「終止」,但有時仍然得到該錯誤。爲什麼?
2)有沒有什麼辦法通過編程方式關閉端口?事情是這樣的:
if(isPortOpen(portNumber)) {
closePort(portNumber);
}
//// Run my app here
3)有什麼辦法避免這種錯誤(編程或OS)?
我正在用Java編寫套接字程序,有時會出現此錯誤。我有一些問題:一些與「使用中的地址:JVM_Bind」有關的問題
1)我使用Eclipse來運行我的套接字應用程序,並最後點擊「終止」,但有時仍然得到該錯誤。爲什麼?
2)有沒有什麼辦法通過編程方式關閉端口?事情是這樣的:
if(isPortOpen(portNumber)) {
closePort(portNumber);
}
//// Run my app here
3)有什麼辦法避免這種錯誤(編程或OS)?
套接字選項SO_REUSEADDR可以幫助重新使用先前已端口正在使用中(一個程序幾秒前終止)。
只需創建一個未連接的插座,連接套接字之前使用
socket.setReuseAddress(true);
,然後將其連接。
請參閱有關的TCPView的javadoc和this SO post
謝謝,我用它來手動關閉端口。 :) – Emerald214 2011-05-28 12:05:58