2015-09-02 26 views
2

我正在爲java編寫一個應用程序。我注意到,如果我的應用程序崩潰,我的TCP連接已結束的端口不能再次使用時,我重新啓動應用程序。有沒有什麼辦法可以從最近重新啓動的應用程序的角度(而不是通過選擇一個新的端口)來解決這個問題?我已經發現,關閉和關閉WiFi已經足夠了,或者從wifi切換到手機。問題與標準TCP java套接字或Netty 4相同。TCP端口在崩潰後無法使用

謝謝!

+0

定義「不能再次使用,當我重新啓動應用程序」。 – EJP

+0

io.netty.channel.ConnectTimeoutException:連接超時:/(ip addr):(端口) – M1LKYW4Y

回答

2

該選項將允許綁定到已經綁定的ip:port組合。它通常用於能夠重新啓動,如果它崩潰的服務器/喪生(因此而插座仍處於TIME_WAIT狀態):

bootstrap.option(ChannelOption.SO_REUSEADDR, true); 
+0

這沒有奏效(當添加到客戶端或服務器時)。也許我應該注意到,該應用程序充當客戶端,而我的PC是服務器。重新啓動服務器也什麼都不做。 – M1LKYW4Y

+0

在這種情況下,TimeoutException對我來說沒有任何意義,特別是如果服務器應用程序重新啓動不起作用。那麼不知道。 –