sockaddr结构体
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结构体相关推荐
- linux sockaddr结构体,linux网络编程笔记 sockaddr_in结构体[转]
struct sockaddr { unsigned short sa_family; char sa_data[14]; }; 此数据结构用做bind.connect.recvfrom.sendto ...
- linux sockaddr结构体,网络编程之sockaddr_ll结构体 | 人人学技术
sockaddr_ll, 源文件为,结构如下: struct sockaddr_ll { unsigned short int sll_family; /* 一般为AF_PACKET */ unsig ...
- qt socket 传递结构体 结构体中有list_计算机网络应用--Socket编程实验(二)
本节关于socket部分函数库列表,具体基于socket的实例实现代码见下节.给出基于winSocket的简单websever实例. 2.1 WSAStartup() [函数原型] int WSASt ...
- socket编程--sockaddr_in结构体操作
sockaddr结构体 sockaddr的缺陷: struct sockaddr是一个通用地址结构,这是为了统一地址结构的表示方法,统一接口函数,使不同的地址结构可以被bind(),connect() ...
- IPv4地址的结构体与网络字节序
IPv4地址的结构体 /* Fixed-size types, underlying types depend on word size and compiler. */ typedef signed ...
- (摘录)sockaddr与sockaddr_in,sockaddr_un结构体详细讲解
struct sockaddr { unsigned short sa_family; /* address family, AF_xxx */ char sa_data[14]; ...
- sockaddr,sockaddr_in,sockaddr_un结构体详细讲解
struct sockaddr {unsigned short sa_family; /* address family, AF_xxx */char sa_data[14]; /* 14 bytes ...
- sockaddr与sockaddr_in,sockaddr_un结构体详解
struct sockaddr { unsigned short sa_family; /* address family, AF_xxx */ char sa_data[14]; ...
- Linux网络编程之sockaddr与sockaddr_in,sockaddr_un结构体详细讲解
Linux网络编程之sockaddr与sockaddr_in,sockaddr_un结构体详细讲解 (1)sockaddr struct sockaddr { unsigned short sa_ ...
最新文章
- 工厂模式-CaffeNet训练
- UESTC 电子科大专题训练 DP-N
- 基于vue2+nuxt构建的高仿饿了么(2018版)
- 数据科学入门与实战:Matplotlib绘图Series
- 95-849-040-源码-RPC-Flink中的RPC使用
- oracle安装前准备,Oracle 安装前准备
- bmd硬盘测试_disk speed test mac版下载-Blackmagic Disk Speed Test for Mac(硬盘读写速度测试工具) v3.2免费版 - Mac天空...
- 【2G模组Air202开发】Lua脚本编程实现MQTT协议连接Tlink平台(二)
- 二级域名与不同的端口网站进行绑定
- Android App赞赏功能,微信公众号赞赏功能升级:作者可直接收到赞赏, iOS安卓均可用...
- Spring涉及到的9种设计模式
- 打开 igv java_IGV加载很久很烦人?三步帮你解决!
- 多线程写法 与老虎机的制作
- 创新创业大赛的目的是什么?为什么要参加创新创业大赛?
- IMX6 / IMX8 系列芯片简单对比
- Multisim电路仿真-验证KCL和KVL
- Pytorch单机多卡加速
- 删除MAC系统自带的ABC输入法[亲测]
- python并列排名_一日一技:Python实现有序列表并列排名
- 知道创宇发布重磅战略方案,构建持续交火的实战化防御体系