sockaddr结构体

sockaddr
本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!
一,用于存储参与(IP)Windows套接字通信的计算机上的一个internet协议(IP)地址。为了统一地址结构的表示方法 ,统一接口函数,使得不同的地址结构可以被bind()、connect()、recvfrom()、sendto()等函数调用。但一般的编程中并不直接对此数据结构进行操作,而使用另一个与之等价的数据结构sockaddr_in。这是由于Microsoft TCP/IP套接字开发人员的工具箱仅支持internet地址字段,而实际填充字段的每一部分则遵循sockaddr_in数据结构,两者大小都是16字节,所以二者之间可以进行切换。
外文名
sockaddr
性 质
通用地址结构
定 义
struct sockaddr {
说 明
sa_data : 是14字节的协议地址
目录
1sockaddr

2sockaddr_in

1sockaddr
其定义如下:
struct sockaddr {
  unsigned short sa_family; /* address family, AF_xxx /
  char sa_data[14]; /
14 bytes of protocol address /
  };
说明:
sa_family :是2字节的地址家族,一般都是“AF_xxx”的形式。通常用的都是AF_INET。
2sockaddr_in
其定义如下:[1]
struct sockaddr_in {
  short int sin_family; /
Address family /
  unsigned short int sin_port; /
Port number /
  struct in_addr sin_addr; /
Internet address /
  unsigned char sin_zero[8]; /
Same size as struct sockaddr */
  };
  sin_family:指代协议族,在socket编程中只能是AF_INET
  sin_port:存储端口号(使用网络字节顺序)
  sin_addr:存储IP地址,使用in_addr这个数据结构
  sin_zero:是为了让sockaddr与sockaddr_in两个数据结构保持大小相同而保留的空字节。
而其中in_addr结构的定义如下:
typedef struct in_addr {
  union {
  struct{ unsigned char s_b1,s_b2, s_b3,s_b4;} S_un_b;
  struct{ unsigned short s_w1, s_w2;} S_un_w;
  unsigned long S_addr;
  } S_un;
  } IN_ADDR;
阐述下in_addr的含义,很显然它是一个存储ip地址的共用体有三种表达方式:
第一种用四个字节来表示IP地址的四个数字;
第二种用两个双字节来表示IP地址;
第三种用一个长整型来表示IP地址。
给in_addr赋值的一种最简单方法是使用inet_addr函数,它可以把一个代表IP地址的字符串赋值转换为in_addr类型,如addrto.sin_addr.s_addr=inet_addr(“192.168.0.2”);
其反函数是inet_ntoa,可以把一个in_addr类型转换为一个字符串。

来源链接:https://www.cnblogs.com/xunbu7/p/4369935.html

sockaddr结构体相关推荐

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

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

  2. linux sockaddr结构体,网络编程之sockaddr_ll结构体 | 人人学技术

    sockaddr_ll, 源文件为,结构如下: struct sockaddr_ll { unsigned short int sll_family; /* 一般为AF_PACKET */ unsig ...

  3. qt socket 传递结构体 结构体中有list_计算机网络应用--Socket编程实验(二)

    本节关于socket部分函数库列表,具体基于socket的实例实现代码见下节.给出基于winSocket的简单websever实例. 2.1 WSAStartup() [函数原型] int WSASt ...

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

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

  5. IPv4地址的结构体与网络字节序

    IPv4地址的结构体 /* Fixed-size types, underlying types depend on word size and compiler. */ typedef signed ...

  6. (摘录)sockaddr与sockaddr_in,sockaddr_un结构体详细讲解

    struct sockaddr { unsigned short sa_family;     /* address family, AF_xxx */ char sa_data[14];       ...

  7. sockaddr,sockaddr_in,sockaddr_un结构体详细讲解

    struct sockaddr {unsigned short sa_family; /* address family, AF_xxx */char sa_data[14]; /* 14 bytes ...

  8. sockaddr与sockaddr_in,sockaddr_un结构体详解

    struct sockaddr { unsigned short sa_family;     /* address family, AF_xxx */ char sa_data[14];       ...

  9. Linux网络编程之sockaddr与sockaddr_in,sockaddr_un结构体详细讲解

    Linux网络编程之sockaddr与sockaddr_in,sockaddr_un结构体详细讲解 (1)sockaddr struct sockaddr { unsigned  short  sa_ ...

最新文章

  1. 工厂模式-CaffeNet训练
  2. UESTC 电子科大专题训练 DP-N
  3. 基于vue2+nuxt构建的高仿饿了么(2018版)
  4. 数据科学入门与实战:Matplotlib绘图Series
  5. 95-849-040-源码-RPC-Flink中的RPC使用
  6. oracle安装前准备,Oracle 安装前准备
  7. bmd硬盘测试_disk speed test mac版下载-Blackmagic Disk Speed Test for Mac(硬盘读写速度测试工具) v3.2免费版 - Mac天空...
  8. 【2G模组Air202开发】Lua脚本编程实现MQTT协议连接Tlink平台(二)
  9. 二级域名与不同的端口网站进行绑定
  10. Android App赞赏功能,微信公众号赞赏功能升级:作者可直接收到赞赏, iOS安卓均可用...
  11. Spring涉及到的9种设计模式
  12. 打开 igv java_IGV加载很久很烦人?三步帮你解决!
  13. 多线程写法 与老虎机的制作
  14. 创新创业大赛的目的是什么?为什么要参加创新创业大赛?
  15. IMX6 / IMX8 系列芯片简单对比
  16. Multisim电路仿真-验证KCL和KVL
  17. Pytorch单机多卡加速
  18. 删除MAC系统自带的ABC输入法[亲测]
  19. python并列排名_一日一技:Python实现有序列表并列排名
  20. 知道创宇发布重磅战略方案,构建持续交火的实战化防御体系

热门文章

  1. python3安装PIL库的经历
  2. jQuery使用技巧
  3. UG NX 12 如何确定绘制的草图是封闭的?
  4. 国产触控笔哪个牌子好,哪种电容笔更好用?
  5. Linux系统的开机自启动
  6. 网络里面没有计算机,网上邻居里面没有本地连接
  7. 近期开发的移动app考研帮V2.1.2上架了,欢迎拍砖
  8. 关于CFX求解器控制
  9. php 元组,tuple(元组)
  10. BP神经网络模型----第二篇(感知器网络模型)