acl
3.5.3.0
|
#include "../stdlib/acl_define.h"
宏定义 | |
#define | ACL_INET_FLAG_NONE 0 |
#define | ACL_INET_FLAG_NBLOCK 1 |
#define | ACL_INET_FLAG_REUSEPORT 1 << 1 |
#define | ACL_INET_FLAG_FASTOPEN 1 << 2 |
#define | ACL_INET_FLAG_EXCLUSIVE 1 << 3 |
类型定义 | |
typedef int(* | acl_accept_fn) (int, struct sockaddr *, socklen_t *) |
函数 | |
ACL_API ACL_SOCKET | acl_sane_accept (ACL_SOCKET sock, struct sockaddr *sa, socklen_t *len) |
ACL_API ACL_SOCKET | acl_accept (ACL_SOCKET sock, char *buf, size_t size, int *sock_type) |
ACL_API ACL_SOCKET | acl_inet_listen (const char *addr, int backlog, unsigned flag) |
ACL_API ACL_SOCKET | acl_inet_accept (ACL_SOCKET listen_fd) |
ACL_API ACL_SOCKET | acl_inet_accept_ex (ACL_SOCKET listen_fd, char *ipbuf, size_t size) |
ACL_API ACL_SOCKET | acl_inet_bind (const struct addrinfo *res, unsigned flag) |
ACL_API ACL_SOCKET | acl_udp_bind3 (const char *addr, unsigned flag, int *family) |
ACL_API ACL_SOCKET | acl_udp_bind (const char *addr, unsigned flag) |
ACL_API void | acl_set_accept (acl_accept_fn fn) |
#define ACL_INET_FLAG_EXCLUSIVE 1 << 3 |
在文件 acl_listen.h 第 18 行定义.
#define ACL_INET_FLAG_FASTOPEN 1 << 2 |
在文件 acl_listen.h 第 17 行定义.
#define ACL_INET_FLAG_NBLOCK 1 |
在文件 acl_listen.h 第 15 行定义.
#define ACL_INET_FLAG_NONE 0 |
在文件 acl_listen.h 第 14 行定义.
#define ACL_INET_FLAG_REUSEPORT 1 << 1 |
在文件 acl_listen.h 第 16 行定义.
typedef int(* acl_accept_fn) (int, struct sockaddr *, socklen_t *) |
在文件 acl_listen.h 第 146 行定义.
ACL_API ACL_SOCKET acl_accept | ( | ACL_SOCKET | sock, |
char * | buf, | ||
size_t | size, | ||
int * | sock_type | ||
) |
方便通用的监听套接字的函数,用来接收客户端连接
sock | {ACL_SOCKET} 监听套接字 |
buf | {char*} 当成功接收一个客户端连接后,如果该 buf 非空则存放客户端 地址,格式:ip:port (针对 TCP 套接口), file_path (针对 UNIX 域套接口) |
size | {size_t} buf 缓冲区大小 |
sock_type | {int*} 非空时用来存放客户端 SOCKET 类型,AF_INET/AF_UNIX |
ACL_API ACL_SOCKET acl_inet_accept | ( | ACL_SOCKET | listen_fd | ) |
接收外来客户端网络连接
listen_fd | {ACL_SOCKET} 监听套接字 |
ACL_API ACL_SOCKET acl_inet_accept_ex | ( | ACL_SOCKET | listen_fd, |
char * | ipbuf, | ||
size_t | size | ||
) |
接收外来客户端网络连接
listen_fd | {ACL_SOCKET} 监听套接字 |
ipbuf | {char*} 指针非空且接收客户端连接成功,则其存储客户端的网络地址 |
size | {size_t} 如果 ipbuf 不为空则表示 ipbuf 的内存空间大小 |
ACL_API ACL_SOCKET acl_inet_bind | ( | const struct addrinfo * | res, |
unsigned | flag | ||
) |
网络地址绑定函数,适用于 TCP/UDP 套接口
res | {const struct addrinfo*} 域名解析得到的地址信息对象 |
flag | {unsigned int} 标志位 |
ACL_API ACL_SOCKET acl_inet_listen | ( | const char * | addr, |
int | backlog, | ||
unsigned | flag | ||
) |
监听某个网络地址
addr | {const char*} 网络地址, 格式如:127.0.0.1:8080,当输入地址为 ip:0 时则由操作系统自动分配监听端口号,监听成功后可以调用 acl_getsockname 获得真正监听的地址 |
backlog | {int} 监听套接字系统接收区的队列大小 |
flag | {unsigned} 监听标志位,参见:ACL_INET_FLAG_XXX |
ACL_API ACL_SOCKET acl_sane_accept | ( | ACL_SOCKET | sock, |
struct sockaddr * | sa, | ||
socklen_t * | len | ||
) |
监听套接字接收外来客户端连接
sock | {ACL_SOCKET} 监听套接字 |
sa | {struct sockaddr*} 存储客户端的网络地址,不能为空 |
len | {socklen_t*} sa 内存空间大小,不能为空 |
ACL_API void acl_set_accept | ( | acl_accept_fn | fn | ) |
ACL_API ACL_SOCKET acl_udp_bind | ( | const char * | addr, |
unsigned | flag | ||
) |
ACL_API ACL_SOCKET acl_udp_bind3 | ( | const char * | addr, |
unsigned | flag, | ||
int * | family | ||
) |
绑定指针的 UDP 地址
addr | {const char*} UDP 地址,格式:IP:PORT 或 UNIX 域套接口,当为 UNIX 域套接口时的格式为:{domain_path}@udp,其中 @udp 表示为 UDP 域套接口 后缀;内部自动区别网络套接口和 UNIX 域套接口,域套接口仅支持 UNIX 平台 |
flag | {unsigned int} 标志位 |
family | {int*} 如果绑定成功且该地址非空则存放地址类型,类型有: AF_INET, AF_INET6, AF_UNIX |