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);
這個接口用於關閉套接字。在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);
這個函數確保關閉監聽套接字後,它使用的地址可以立即被另一個套接字使用。