Sean's Note: 使用 Socket 前要注意的二三事

2013年4月2日 星期二

使用 Socket 前要注意的二三事

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

沒有留言:

張貼留言