第六章:表达格式和数值格式的转换

Posted 穆晨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第六章:表达格式和数值格式的转换相关的知识,希望对你有一定的参考价值。

前言

       在网络编程中,用户给出的IP参数往往是字符串格式的( 我们也称它为表达格式 )。然而,请看通用套接字地址结构定义:

 1 struct in_addr {
 2     in_addr_t s_addr; // 存放IP地址的整型变量
 3 };
 4 
 5 struct sockaddr_in {
 6     uint8_t sin_len;
 7     sa_family_t sin_familt;
 8     in_port_t sin_port;
 9 
10     struct in_addr sin_addr; // 存放IP地址的结构
11 
12     char sin_zero[8];
13 };

       观察出,IP地址在套接字地址结构中是以结构体in_addr方式存放的,这种结构体也叫做IP参数的数值格式。当我们要将IP参数存进套接字地址结构,显然要先将其转换为数值格式。下面将介绍几个函数,能很好的实现转换功能。这些函数都包含在头文件 arpa/inet.h 中。

表达格式 ------> 数值格式

       函数原型:int inet_pton ( int family, const char *strptr, void *addrptr )

       函数功能:将strptr中表达格式的IP地址对应的数值格式存进指针addrptr指向的区域。若成功则返回1, 输入格式非法返回0,出错返回-1。

数值格式 ------> 表达格式

       函数原型:const char *inet_ntop ( int family, const void * addrptr, char * strptr, size_t len )

       函数功能:将addrptr指向区域的数值格式的IP地址对应的表达格式存进strptr。若成功则返回指向结果的指针,否则返回NULL。

以上是关于第六章:表达格式和数值格式的转换的主要内容,如果未能解决你的问题,请参考以下文章

第六章 数组与结构

第六章:数组

Python自学之旅 #新手#MacBook #《“笨办法”学Python》#第六章:常用的简易Python命令符号代码格式化字符串

课后随笔(第五章 & 第六章)

第六章:Django 综合篇 - 18:国际化和本地化

第六章:Django 综合篇 - 18:国际化和本地化