Sockaddr结构体

本文详细介绍了在socket编程中,如何使用sockaddr_in结构体来定义和赋值,以及它与sockaddr结构体的区别。sockaddr_in专用于网络地址,属于AF_INET地址族,将端口号和IP地址分开存储,而sockaddr则是一个通用地址结构,将目标地址和端口信息混合存储在sa_data字段中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Sockaddr和sockaddr_in的相互关系

一般先把sockaddr_in变量赋值后,强制类型转换后传入用sockaddr做参数的函数

sockaddr_in用于socket定义和赋值

sockaddr用于函数参数

sockaddr_in结构体:struct sockaddr_in中的in表示internet,就是网络地址,这只是我们比较常用的地址结构,属于AF_INET地址族,sockaddr_in结构体解决了sockaddr的缺陷,把port和addr分开存储在两个变量中。

struct sockaddr_in

{

short int sin_family;

unsigned short int sin_port;

struct in_addr sin_addr;

}

sin_family指代协议族,在socket编程中只能是AF_INET

sin_port存储端口号(使用网络字节顺序)

sin_addr存储IP地址,使用in_addr这个数据结构

 

struct  sockaddr结构体是一个通用地址结构,sa_data把目标地址和端口信息混在一起了

struct sockaddr

{

sa_family_t sin_family;

char sa_data[14];//14字节,包含套接字中的目标地址和端口信息

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值