套接字参数
结构定义
网络通信所使用的套接字参数由头文件 mconet.h
中定义如下:
typedef struct mco_sock_params_t_
{
int mode; /* MCO_SOCK_OPEN_MODE 的位集 */
int linger;
int sndbuf; /* 套接字发送缓冲区的大小(以字节为单位) */
int rcvbuf; /* 套接字接收缓冲区的大小(以字节为单位) */
int compression_level; /* 压缩级别 */
MCO_SOCK_DOMAIN domain; /* 套接字域(可能为open_mode中的选项) */
MCO_SOCK_TYPE type; /* TCP/UDP(可能为open_mode中的选项) */
const char *mcast_addr; /* 仅在 type == MCO_SOCK_MCAST 时使用 */
void *ssl_params; /* 当支持 OpenSSL 时用于 SSL 套接字 */
MCO_RET last_error; /* 输出:如果 mco_create_socket() 调用失败,SmartEDB 的错误代码 */
int last_errno; /* 输出:如果 mco_create_socket() 函数调用失败,则为 errno 的值 */
} mco_sock_params_t;
mode枚举值
typedef enum MCO_SOCK_OPEN_MODE_E_
{
MCO_SOCK_NODELAY = 1,
MCO_SOCK_DO_NOT_REUSE_ADDRESS = 2,
MCO_SOCK_NON_BLOCKING = 4,
MCO_SOCK_KEEP_ALIVE = 8,
MCO_SOCK_DO_NOT_CLOEXEC = 16
} MCO_SOCK_OPEN_MODE;
domain枚举值
typedef enum MCO_SOCK_DOMAIN_E_
{
MCO_SOCK_INET_DOMAIN, /* IPv4 或 IPv6 */
MCO_SOCK_INETV4_DOMAIN, /* 仅 IPv4 */
MCO_SOCK_INETV6_DOMAIN, /* 仅 IPv6 */
MCO_SOCK_LOCAL_DOMAIN,
MCO_SOCK_SDP_DOMAIN
} MCO_SOCK_DOMAIN;
type枚举值
typedef enum MCO_SOCK_TYPE_E_
{
MCO_SOCK_STREAM,
MCO_SOCK_DGRAM,
MCO_SOCK_MCAST,
} MCO_SOCK_TYPE;