Libevent應用 (四) 輔助型別和函式

嚇人的猿發表於2018-03-03

4 輔助型別和函式

4.1 基本型別

4.1.1 evutil_socket_t

​ 在除Windows之外的大多數地方,套接字是個整數,作業系統按照數值次序進行處理。然而,使用Windows套接字API時,socket具有型別SOCKET,它實際上是個類似指標的控制程式碼,收到這個控制程式碼的次序是未定義的。在Windows中,libevent定義evutil_socket_t型別為整型指標,可以處理socket()或者accept()的輸出,而沒有指標截斷的風險。

4.1.2 標準整數型別

4.2 套接字API

int evutil_closesocket(evutil_socket_t s);
#define EVUTIL_CLOSESOCKET(s) evutil_closesocket(s)

​ 這個介面用於關閉套接字。在Unix中,它是close()的別名;

int evutil_make_socket_nonblocking(evutil_socket_t sock);

​ evutil_make_socket_nonblocking()函式要求一個套接字(來自socket()或者accept())作為引數,將其設定為非阻塞的。(設定Unix中的O_NONBLOCK標誌和Windows中的FIONBIO標誌)

int evutil_make_listen_socket_reuseable(evutil_socket_t sock);

​ 這個函式確保關閉監聽套接字後,它使用的地址可以立即被另一個套接字使用。

相關文章