sockaddr_in结构体

sockaddr_in是系统封装的一个结构体,具体包含了成员变量:sin_family、sin_addr、sin_zero等等。

  • sin_family主要用于定义是地址族
  • sin_port主要用来保存端口号
  • sin_addr主要用来保存IP地址信息
  • sin_zero是为了让sockaddr与sockaddr_in两个数据结构保持大小相同而保留的空字节。用来将sockaddr_in结构填充到与struct
    sockaddr同样的长度,可以用bzero()或memset()函数将其置为零。

使用sockaddr_in需要的头文件:

#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

socklen_t类型

socklen_t是一种数据类型,和int差不多,在32位机下,size_t和int的长度相同,都是32 bits,但在64位机下,size_t(32bits)和int(64 bits)的长度是不一样的,socket编程中的accept函数的第三个参数的长度必须和int的长度相同。于是有了socklen_t类型。

bzero函数

函数原型:void bzero(void *s, int n);
头文件:#include <string.h>
功能:将字符串s的前n个字节置为0,一般来说n通常取sizeof(s),将整块空间清零。
返回值:无返回值

  1. 对于结构体变量
    struct node Test;
    用bzero将其清零
    bzero( &Test, sizeof(Test) );
  2. 将一个数组清零
    char str[10];
    bzero( str, sizeof(s);

sockaddr_in结构体、socklen_t类型、bzero函数简要记录相关推荐

  1. socket编程--sockaddr_in结构体操作

    sockaddr结构体 sockaddr的缺陷: struct sockaddr是一个通用地址结构,这是为了统一地址结构的表示方法,统一接口函数,使不同的地址结构可以被bind(),connect() ...

  2. sockaddr_in结构体

    点击进入结构如下: struct sockaddr_in { __uint8_t sin_len; sa_family_t sin_family; in_port_t sin_port; struct ...

  3. c语言sockaddr_in结构体,转:sockaddr与sockaddr_in结构体详细讲解

    sockaddr与sockaddr_in结构体详细讲解 二者区别 struct sockaddr { unsigned short sa_family;     /* address family, ...

  4. linux sockaddr结构体,linux网络编程笔记 sockaddr_in结构体[转]

    struct sockaddr { unsigned short sa_family; char sa_data[14]; }; 此数据结构用做bind.connect.recvfrom.sendto ...

  5. 32.【C/C++ 结构体全类型 (详解)】

    C结构体的应用 (一).什么是结构体? (二).结构体的声明: 2.1介绍一下上面的结构体声明: 2.2struct声明的位置 2.3标记名的可省略性 (三).结构体变量的定义 3.1分配空间 3.2 ...

  6. Linux学习-文件IOA1——用结构体和文件操作函数实现文件的拷贝

    Linux学习-文件IOA1--用结构体和文件操作函数实现文件的拷贝 其实我们不必选用结构体去实现模仿拷贝功能的,但是为了锻炼我们的思维以及对结构体.文件操作函数的使用,所以我们就这样来折腾自己. 学 ...

  7. c结构体中定义的成员指针赋值与结构体指针作为成员函数参数的使用

    c语言定义结构体可以直接声明结构体变量的,如下 struct Student{char *name; int age; }xiaoming 这样以来,我们就定义了一个结构体类型,同时声明了一个结构体变 ...

  8. C语言之在结构体里面放很多函数指针

    1 原因 看了open ssl代码里面很多在结构体里面放很多函数指针,然后再来调用,这样比较规范和统一 2 代码实现 #include <stdio.h> #include <ass ...

  9. C语言项目实战:24点游戏计算器(基于结构体、指针、函数、数组、循环等知识点)

    文章目录 C语言项目实战:24点游戏计算器(基于结构体.指针.函数.数组.循环等知识点) 前言:24点游戏计算器的规则如下 一.项目的创建标 1.选择项目 2.输入项目名称和路径 3.创建头文件Mai ...

  10. C 语言结构体数组指针以及函数

    结构体数组指针 指针变量可以指向一个结构体数组,这时指针变量的值是整个数组的首地址. 设 ps 为指向结构体数组的指针变量,则 ps 也指向该结构体数组的第 0个元素,ps+1 指向第一个元素,ps+ ...

最新文章

  1. 内存都是由半导体器件构成的_开启5G新时代——XPS成像技术在半导体器件中的应用...
  2. 真惨!连各大编程语言都摆起地摊了!
  3. python群控_带你用 Python 实现自动化群控入门篇
  4. JS中避免命名冲突的三个方法
  5. 关于如何生成随机记录
  6. C++Primer学习笔记:第2章 变量和基本类型
  7. 在Windows 7 x64 上编译libsvn
  8. 围绕央行系统升级所产生的常见问题
  9. github随时同步代码_原来用IntelliJ IDEA操作GitHub这么方便啊
  10. Python爬虫错误重试,超时处理
  11. java之接口适配器
  12. Java jdk 1.8版本安装包
  13. 使用JIRA搭建本地项目管理工具
  14. 【RDMA】qp数量和RDMA性能(节选)|连接数
  15. iOS10的nano_free nano_relocated crash总结
  16. Error与Exception的异常定义以及简介(简单理解介绍是为了下一节的异常处理与捕捉)
  17. android 申请移动应用的签名生成方法
  18. Android:Handler中的Idle Handler
  19. 分段存储管理+逻辑地址转化为物理地址+例题
  20. STM8L101F3P6低功耗

热门文章

  1. 《机器学习》周志华--第5章神经网络。 笔记+习题
  2. S32K MCAL03-如何使用EB工具配置FlexCAN的波特率
  3. delphi2010 窗体使用技能总结
  4. Cisco Packet Tracer安装教程
  5. 检测网络端口和刷新本地DNS
  6. PDFlib使用(c++)
  7. TCPIP详解学习笔记-UDP协议
  8. linux下shell脚本编程2
  9. 人物-李彦宏:李彦宏
  10. JAVA项目之图书管理系统