1 onps栈使用说明——API接口手册( 八 )


socket_get_last_error_code功能
获取socket最近一次发生的错误编码 。
原型
EN_ONPSERR socket_get_last_error_code(SOCKET socket);
入口参数

  • socket:socket句柄
返回值
返回值为socket最近一次发生的错误编码 。
示例
略 。
返回目录
3. 常用工具函数协议栈还提供了一组网络编程常见的工具函数以供用户使用,同时还提供了一些常用的比如字符串操作、16进制格式化转换输出等函数:
  • htonxx系列:网络字节序转换函数
  • inet_xx系列:网络地址转换函数
  • ip_addressing:检查ip地址是否在同一网段
  • strtok_safe:线程安全的strtok函数
  • snprintf_hex:将16进制数据格式化转换成字符串
  • printf_hex:将16进制数据格式化转换成字符串后输出到控制台
  • onps_error:将协议栈返回的错误码转换成具体的描述字符串
htonll功能
实现64位长整型数的网络字节序转换 。
原型
LONGLONG htonll(LONGLONG llVal);
入口参数
  • llVal:64位长整型数
返回值
返回值为字节序转换后的64位长整型数 。
示例
略 。
返回目录
htonl功能
实现32位整型数的网络字节序转换 。
原型
LONG htonl(LONG lVal);
入口参数
  • lVal:32整型数
返回值
返回值为字节序转换后的32位整型数 。
示例
略 。
返回目录
htons功能
实现16位短整型数的网络字节序转换 。
原型
SHORT htonl(SHORT sVal);
入口参数
  • sVal:16位短整型数
返回值
返回值为字节序转换后的16位短整型数 。
示例
略 。
返回目录
inet_addr功能
实现点分十进制1Pv4地址到4字节无符号整型地址的转换,即10.0.1.2转换为0x0A000102 。
原型
in_addr_t inet_addr(const char *pszIP);
入口参数
  • pszIP:指向点分十进制IPv4地址字符串的指针
返回值
返回值为无符号32位整型地址 。
示例
略 。
返回目录
inet_addr_small功能
实现点分十进制1Pv4地址到4字节无符号整型地址的转换,即10.0.1.2转换为0x0201000A 。
原型
in_addr_t inet_addr_small(const char *pszIP);
入口参数
  • pszIP:指向点分十进制IPv4地址字符串的指针
返回值
返回值为无符号32位整型地址 。
示例
略 。
返回目录
inet_ntoa功能
注意,这是一个线程不安全的函数,实现in_addr类型的地址到点分十进制1Pv4地址的转换 。
原型
char *inet_ntoa(struct in_addr stInAddr);
入口参数
  • stInAddr:指向in_addr类型的IPv4地址的指针
返回值
返回字符串指针,指向转换后的点分十进制格式的IPv4地址字符串 。
示例
struct in_addr stAddr;stSrcAddr.s_addr = inet_addr_small("192.168.0.9");printf("%s\r\n", inet_ntoa(stAddr));返回目录
inet_ntoa_ext功能
注意,这是一个线程不安全的函数,实现4字节无符号整型地址到点分十进制1Pv4地址的转换 。
原型
char *inet_ntoa_ext(in_addr_t unAddr);
入口参数
  • unAddr:要转换的IPv4地址,4字节无符号整型格式
返回值
返回字符串指针,指向转换后的点分十进制格式的IPv4地址字符串 。
示例
in_addr_t unAddr = inet_addr_small("192.168.0.9");printf("%s\r\n", inet_ntoa_ext(unAddr));返回目录
inet_ntoa_safe功能
注意,这是一个线程安全的函数,实现in_addr类型的地址到点分十进制1Pv4地址的转换 。
原型
char *inet_ntoa_safe(struct in_addr stInAddr, char *pszAddr);
入口参数
  • stInAddr:指向in_addr类型的IPv4地址的指针
  • pszAddr:指向转换后的点分十进制IPv4地址字符串的指针
返回值
返回字符串指针,指向转换后的点分十进制格式的IPv4地址字符串 , 其地址其实就是参数pszAddr指向的地址 。
示例
CHAR szAddr[20];struct in_addr stAddr;stSrcAddr.s_addr = inet_addr_small("192.168.0.9");printf("%s\r\n", inet_ntoa_safe(stAddr, szAddr));返回目录
inet_ntoa_safe_ext功能
注意,这是一个线程安全的函数,实现4字节无符号整型地址到点分十进制1Pv4地址的转换 。
原型
char *inet_ntoa_safe_ext(in_addr_t unAddr, char *pszAddr);
入口参数