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

前言

在网络编程中,用户给出的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。

时间: 2024-12-19 22:29:10

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

phpexcel 导入 时间格式 和 数值格式 处理

/** * Notes:导入excel文件 * User: hly * Date: 2020/4/14 17:56 */ function importXlsx() { //引入phpexcel require getcwd() . '/PHPExcel.php'; $file_name = 'test.xlsx'; //模拟上传后的文件 $objReader = \PHPExcel_IOFactory::createReader('Excel2007'); $objPHPExcel = $ob

第二章 导入数据到SAS | 格式规范数据读取

目录 2.1 导入数据的方法 2.2 利用导入向导读入 2.3 格式规范数据读取 2.3.1 指定原始数据位置(infile) 2.3.2 读取空格分隔原始数据(列表输入) 2.3.3 读取按列排列原始数据(列输入) 2.3.4 读取非标准格式的原始数据(格式化输入) 2.3.5 混合的输入样式(列表输入+列输入+格式输入) 2.1 导入数据的方法 将数据导入SAS的方法有很多,但可以归纳为四个基本类别,其中方法2.3是需要掌握的重点. 直接将数据输入SAS数据集 通过VIEWTABLE窗口(打

第六章、情感的认知与表达

目录 第六章.情感的认知与表达 一.评估情感理解力与表达能力 二.焦虑障碍 (一)强迫症 (二)创伤后应激障碍 (三)厌学症 (四)选择性減默症 (五)社交焦虑障碍 三.抑郁症 四.愤怒 五.爱 六.认知行为疗法 (-)情感教育 (二)认知重构 (三)身体工具 (四)放松工具 (五}社会性工具 (六)思考工具 (七)特殊兴趣工具 (八)药物 (九)工具箱中的其他工具 (十)不合适的工具 (十一)练习认知行为疗法策略 七.总结和思考 本章重点及策略 ++++++ 第六章.情感的认知与表达 想要理解

APUE读书笔记-第六章 系统数据文件和信息

昨天看完了,今天来看看第六章.感觉第六章的内容不是非常重要.简单看看吧 6.2 口令文件 口令文件其实就是/etc文件夹下的passwd文件,但处于安全性的考虑,我们无法直接读取它.就是通过直接限制权限的方式对其进行保护,passwd文件具体权限如下: -rw-r--r-- 1 root root 可以看到只有root用户具有读写权限,与root同组的用户与其他用户仅具有读权限. 不过为了解决以上问题,Linux中给出了一系列数据结构与函数帮助我们操纵口令文件,首先是关键数据结构,定义位于/in

CSS3秘笈:第六章

第六章  文本格式化 1.font-family 属性设置字体.除了指定想要的字体之外还要使用备用字体.例如: p{ font-family:Arial ,Helvetica ,sans-serif; } 如果字体的名称中包含多个单词,则必须用双引号(””)将它们括起来. 2.·serif字体,适合冗长的文字信息. ·sans-serif字体看起来干净而整洁因此经常被放在标题上. ·monospaced字体经常用于显示计算机代码.字体中的每个字母都是等宽的. ·其他常用字体:Arial Blac

C语言笔记(谭版 第六章~末)

第六章       利用数组批量处理数据 数组是一组有序数据的集合,数组中的每一个元素都属于同一数据类型. 算是一种数据的组织结构.初现结构端倪. 一维数组 定义: 类型符 数组名[常量表达式]  数组名命名遵行标示符命名规则 C语言中不允许对数组的大小作动态定义. 说明:如果在被调用函数中定义数组,其长度可以是变量或非常量表达式.实参.此情况称为可变长数组.若数组指定为静态存储方式,此方式不合法. 引用: 数组名[下标] 下标是常量或常量表达式   序号从0开始计起. 初始化:初始化列表  i

OpenGL ES着色器语言之语句和结构体(官方文档第六章)内建变量(官方文档第七、八章)

OpenGL ES着色器语言之语句和结构体(官方文档第六章) OpenGL ES着色器语言的程序块基本构成如下: 语句和声明 函数定义 选择(if-else) 迭代(for, while, do-while) 跳跃(discard, return, break, continue) 6.1函数定义   着色器是由一系列全局声明和函数定义组成的.函数声明规范如下: // prototype returnType functionName (type0 arg0, type1 arg1, ...,

Laxcus大数据管理系统2.0(8)- 第六章 网络通信

第六章 网络通信 Laxcus大数据管理系统网络建立在TCP/IP网络之上,从2.0版本开始,同时支持IPv4和IPv6两种网络地址.网络通信是Laxcus体系里最基础和重要的一环,为了能够利用有限的网络资源,获得最大化的使用效率,我们根据大数据网络环境的特点,设计了一套专属网络通信协议,以及在此协议基础上实现的多套网络通信方案,它们共同组成了Laxcus集群的网络通信基础.本章将以TCP/IP协议为起点,介绍与网络通信有关的各个组成部分. 6.1 FIXP协议 Laxcus采用FIXP协议通信

增长黑客内容摘要(四五六章)

增长黑客内容摘要(四五六章) 一.第四章 4.1 职场社交巨头的用户激活秘诀 用户的数量与结成的关系网络深度直接决定了其价值的大小. 策略:1.新册用户到达“邀请好友”页面时,如果系统默认建议用户邀请的朋友数量少于4人,则他们很可能会轻易地忽略这一步骤:如果多于4人,则可能会让用户感到焦虑和麻烦:而不偏不倚刚好4人,能实现最大程度的邀请转化率.2.新注册用户源源不断地带来更多用户,同时老用户也会时不时回来看看,处理请求,或者主动发起好友邀请. 4.2 A/B测试,网站活跃率提升的法宝 备选方案模