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); 这个函数确保关闭监听套接字后,它使用的地址可以立即被另一个套接字使用。
本文详细介绍了套接字API的基础类型及几个关键函数,包括evutil_socket_t类型的定义及其在不同平台上的应用,同时深入探讨了evutil_closesocket、evutil_make_socket_nonblocking和evutil_make_listen_socket_reuseable等函数的作用。

587

被折叠的 条评论
为什么被折叠?



