2016-09-24 116 views
0

即時通訊開發一個原生的Android應用程序,沒有錯誤,但logcat的說如何處理java.net.ConnectException有效

Caused by: java.net.ConnectException: failed to connect to some ip. 
    Caused by: libcore.io.ErrnoException: connect failed: ETIMEDOUT 

由Android指出警戒線 - 工作室 -

HttpResponse httpResponse = httpClient.execute(httpPost); 

當您的應用程序無法與LAN上的本地服務器通信時,會發生此問題。

任何人都可以建議我有條件處理這個Exceptions efferntly? 只想我的應用程序沒有錯誤和警告。

可能我們可以使用一個try - catch?至少,只是爲了顯示吐司「連接錯誤」:)

+0

這裏提到http://hpp.com/files/32954067/java-net-connectexception-failed-to-connect-to-10-0-0-2-port-80-connect-fai和from這也太http://stackoverflow.com/questions/20028648/client-socket-times-out-when-connecting-to-server –

+0

其實我早就做了一些研究,gottcha! – Vikrant

回答

0

連接是依賴於各種真實世界™巧合的東西之一,如在Wi-Fi熱點的範圍內,並且您的信號不會被淹沒另一個Wi-Fi信號在同一個通道上。因此保證有時它會失敗。

既然你說「沒有錯誤」,這意味着錯誤是在某處處理的,不知何故,也許在你無法控制的代碼中。但是,錯誤得到處理的事實並不意味着溝通沒有中斷。如果客戶端和服務器之間有連續的數據流,那麼當前數據的連續性會有差距。傳輸可能已被重試,並且成功,但延遲。如果您發現延遲,並且您正在排除故障,則確實想知道原因。因此,這些日誌消息很重要。

所以,你需要習慣他們,並學會忽略他們,直到有一天你會解決一些與連接有關的問題時,你會學會也愛他們。

總結:「連接錯誤」吐司並不是很有幫助,因爲在現實世界的使用場景中,它們會一直彈出。允許記錄錯誤可能是你可以做的唯一的事情,也可能是最好的。

+1

感謝支持朋友。 – Vikrant