Libevent應用 (四) 輔助類型和函數

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);

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章