- 不應該在 UI thread 建立 Socket。(For Android)
- socket.isClosed() 只能判斷 local 端的 socket 是否被關閉了,無法判斷 remote 端的,
例如即使 Client 已關閉 socket,在 Server 端呼叫 isClosed() 還是會拿到 FALSE。
想判斷是否還可正常連線,就只能直接 read/write 看看,如果 read() 回傳 -1,就代
表連線可能已經中斷導致 Stream 也被關閉,再也拿不到資料 (EOF)。 - 當兩邊 Stream 建立時,一方的 read() 通常會被 block 住,但如果另一方的 Stream
突然被關閉,此時的 read() 再也不會被 block,而是不斷的回傳 -1 (EOF)。
沒有留言:
張貼留言