套接字编程中常用的地址转换函数

1.字节排序函数:

#include<netinet/in.h>

unit16_t htons(unit16_t host16bitvalue); 如TCP或UDP端口号
unit32_t htonl(unit32_t host32bitvalue); 如IPv4地址
均返回:网络字节序的值
unit16_t ntohs(unit16_t net16bitvalue);
unit32_t ntohl(unit32_t net32bitvalue);
均返回:主机字节序的值

2.字节操纵函数:

#include<strings.h>

void bzero(void *dest, size_t nbytes);
功能:把目标字符串指定数目的字节置为0;

void bcopy(const void *src, void *dest, size_t nbytes);
功能:将指定数目的字节从源字节串复制到目标字符串;

int bcmp(const void *ptr1, const void *ptr2, size_t nbytes);
返回:若相等则为0,否则为非0
功能:比较连个任意字符串;

#include<string.h>

void *memset(void *dest,int c, size_t len);
功能:把目标字符串指定数目的字节置为c值;

void *memcpy(void *dest, const void *src, size_t nbytes);
功能:类似bcopy,当源字节串与目标字节串重叠时,bcopy能正确处理,但是memcpy的操作结果却不可知;

int memcmp(const void *ptr1, const void *ptr2, size_t nbytes);
返回:若相等则为0,否则为<0或>0
功能:比较两个任意的字节串,如果ptr1>ptr2则返回>0,反之<0,若相等返回0;

3.地址转换函数:

#include<arpa/inet.h>

int inet_aton(const char *strptr, struct in_addr *addrptr);
返回:若字符串有效则为1,否则为0
功能:将strptr指向的字符串转换成一个32位字节序二进制值,并通过指针addrptr来存储;

in_addr_t inet_addr(const char *strptr);
返回:若字符串有效则为32位二进制网络字节序的IPv4地址,否则为INADDR_NONE(通常是一个32位均为1的值)
功能:进行相同的转换,返回值为32位的网络字节序二进制值,255.255.255.255不能由该函数处理;

char *inet_ntoa(struct in_addr inaddr);
返回:指向一个点分十进制数串的指针
功能:将一个32位的网络字节序二进制IPv4地址转换成相应的点分十进制数串;

int inet_pton(int family, const char *strptr, void *addrptr);
返回:若成功则返回1,若输入不是有效的表达式格式则为0,若出错则为-1
功能:转换由strptr指针所指的字符串,并通过addrptr指针存放二进制结果。

const char *inet_ntop(int family, const void* addrptr, char *strptr, size_t len);
返回:若成功则为指向结果的指针,若出错则为NULL
功能:从数值格式转换到表达式格式。

inet_pton和inet_ntop函数对于IPv4和IPv6都适用,上面4个函数仅适用于IPv4.
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 、可私信6博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 、可私信6博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值