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);
这个接口用于关闭套接字。在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);
这个函数确保关闭监听套接字后,它使用的地址可以立即被另一个套接字使用。