acl  3.5.3.0
acl_sane_socket.h
浏览该文件的文档.
1 #ifndef ACL_SANE_SOCKET_INCLUDE_H
2 #define ACL_SANE_SOCKET_INCLUDE_H
3 
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7 
8 #include "../stdlib/acl_define.h"
9 
10 #ifdef ACL_UNIX
11 #include <sys/socket.h>
12 #include <netinet/in.h>
13 #include <sys/un.h>
14 #include <arpa/inet.h>
15 #endif
16 
17 /**
18  * 取得套接字连接对方的网络地址, 地址格式为: IP:PORT
19  * @param fd {ACL_SOCKET} 网络套接字
20  * @param buf {char*} 存储地址的缓冲区,不能为空
21  * @param bsize {size_t} buf 空间大小
22  * @return {int} 0: ok; -1: error
23  */
24 ACL_API int acl_getpeername(ACL_SOCKET fd, char *buf, size_t bsize);
25 
26 /**
27  * 取得套接字连接本地的网络地址, 地址格式为: IP:PORT
28  * @param fd {ACL_SOCKET} 网络套接字
29  * @param buf {char*} 存储地址的缓冲区,不能为空
30  * @param bsize {size_t} buf 空间大小
31  * @return {int} 0: ok; -1: error
32  */
33 ACL_API int acl_getsockname(ACL_SOCKET fd, char *buf, size_t bsize);
34 
35 /**
36  * 取得套接字的类型:是网络套接字还是域套接字
37  * @param fd {ACL_SOCKET} 网络套接字
38  * @return {int} -1: 表示出错或输入非法或非套接字; >= 0 表示成功获得套接字
39  * 类型,返回值有 AF_INET、AF_INET6 或 AF_UNIX(仅限 UNIX 平台)
40  */
41 ACL_API int acl_getsocktype(ACL_SOCKET fd);
42 
43 /**
44  * 检查套接字:是监听套接字还是网络套接字
45  * @param fd {ACL_SOCKET} 套接字句柄
46  * @return {int} 返回 -1 表示该句柄非套接字,1 为监听套接字,0 为非监听套接字
47  */
48 ACL_API int acl_check_socket(ACL_SOCKET fd);
49 
50 /**
51  * 判断套接字是否为监听套接字
52  * @param fd {ACL_SOCKET} 套接字句柄
53  * @return {int} 返回值 0 表示非监听套接字,非 0 表示为监听套接字
54  */
55 ACL_API int acl_is_listening_socket(ACL_SOCKET fd);
56 
57 #ifdef __cplusplus
58 }
59 #endif
60 
61 #endif
ACL_API int acl_getsockname(ACL_SOCKET fd, char *buf, size_t bsize)
ACL_API int acl_getpeername(ACL_SOCKET fd, char *buf, size_t bsize)
ACL_API int acl_check_socket(ACL_SOCKET fd)
ACL_API int acl_getsocktype(ACL_SOCKET fd)
ACL_API int acl_is_listening_socket(ACL_SOCKET fd)