2
我想弄清楚當我的客戶端軟件無法連接到遠程服務器時,如何給用戶提供更好的反饋。我認爲有一對夫婦的情況下,我想區分:C#TCPClient如何讓壞地址/離線服務器更快地失敗
- 無效/離線服務器
- 有效的服務器,但端口是關閉
- 有效的服務器,但不同的程序正在使用的端口
- 成功連接
我遇到的問題是#1需要一分鐘超時。 #2和#3幾乎立即失敗。有沒有辦法讓我#1失敗更快?
我想弄清楚當我的客戶端軟件無法連接到遠程服務器時,如何給用戶提供更好的反饋。我認爲有一對夫婦的情況下,我想區分:C#TCPClient如何讓壞地址/離線服務器更快地失敗
我遇到的問題是#1需要一分鐘超時。 #2和#3幾乎立即失敗。有沒有辦法讓我#1失敗更快?
您可以實現連接超時
http://www.codeproject.com/Articles/31514/Implementation-of-Connecting-a-Socket-with-Timeout
只要確保您設置連接超時值,以一個很合理的,你要訪問的服務器(如果他們有時需要5秒內達到,不要將它設置爲1秒)。
問題是,有些服務器確實需要更長的時間才能到達。強制超時例如三秒鐘可能觸發「無效/離線服務器」消息實際上不成立。 – 2012-07-25 20:06:36