1. 程式人生 > >socket可讀/可寫

socket可讀/可寫

在網路程式設計中,下列情況socket可讀:
    1,socket核心快取區中位元組數大於或等於其低水位標記SO_RCVLOWAT。
    2,socket通訊的對方關閉連線。此時對該socket的讀操作將返回0.
    3,監聽socket上有新的連線請求。
    4,socket上有未處理的錯誤。
下列情況socket可寫:
    1,socket核心快取區中的可用位元組數大於或等於其低水位標記SO_SNDLOWAT。
    2,socket的寫操作被關閉(即:往一個讀端關閉的socket連線中寫資料)。對寫操作被關閉的socket執行寫操作將觸發一個SIGPIPE訊號。
    3,socket使用非阻塞connect連線成功或失敗(超時)之後。

    4,socket上有未處理的錯誤。

以poll為例,當管道的讀端關閉時,寫端檔案描述符上的POLLHUP事件將被觸發;當socket連線被對方關閉時,socket上的POLLRDHUP事件將被觸發。