我正在開發和android應用程序,通過套接字與服務器進行通信。我有一個線程讀取套接字,而主線程執行Asynk Task
,它通過相同的套接字發送消息。這裏的問題是,有些時候(比如說50%的次數)我稱之爲套接字連接的OutputStream.write()
方法,服務器日誌顯示客戶端關閉了連接。我讀到java套接字是全雙工的,這應該允許我通過相同的套接字發送和接收消息而沒有任何問題。那麼,爲什麼會發生這種情況?應用程序是否存在問題?或者它是服務器端代碼(我沒有訪問)關閉連接的那個?爲什麼OutputStream.write()關閉套接字連接?
編輯:服務器是一個raspberry分佈,運行只有一個java應用程序是一個與我的應用程序通信的樹莓派。我無法訪問運行在服務器上的Java代碼或服務器顯示的任何日誌,我只能訪問連接到服務器的屏幕,該屏幕會打印代碼「告訴」它打印的消息。當我執行OutputStram.Write()時,服務器在屏幕上顯示:「連接到客戶端關閉」。
非常感謝!
你有什麼異常?它應該在你的Android日誌中。 – Gray
我懷疑服務器已關閉連接。 – Gray
「服務器日誌顯示客戶端已關閉連接」:不,它不。 *顯示*我們日誌真正包含的內容。 – EJP