2017-03-10 70 views
0

我使用NSD(網絡服務分離)在Android中創建聊天應用程序。
我的問題是如何重新連接客戶端與以前的客戶端IP和端口。
例子: 客戶端IP和端口,當它連接到服務器首次
端口:52354
IP:110.100.92.187
假設,如果以某種方式連接丟失,這樣我就可以重新連接到相同的與IP和端口,即 端口服務器:52354
IP:110.100.92.187
或任何其他方式使代碼可靠,以便它不會失去連接? 記得我使用NSD的本地網絡(本地WiFi網絡和熱點)不是互聯網。
任何其他更好的解決這個問題的方法是最受歡迎的。如何使用服務器與以前的客戶端端口和IP重新連接客戶端

+0

服務器正在偵聽的端口是什麼? – greenapps

+0

讓服務器正在偵聽以下端口和IP 端口:52355 IP:110.100.92.197 –

回答

0

如何重新連接客戶端與以前的客戶端IP和端口

一般來說,你不能,因爲TCP TIME_WAIT狀態的。這意味着您不能在兩分鐘內重複使用相同的本地端口,或者本地配置的最大段壽命(MSL)的兩倍。如果您可以等待很長時間,則可以在連接之前將該插口連接到該端口。

在實踐中,您不應該依賴IP:port作爲客戶端標識符。

+0

「這意味着您不能在兩分鐘內重複使用同一本地端口」是否意味着如果設備保持連接兩分鐘兩分鐘後會自動復位? –