socket编程之sockaddr和sockaddr_in的区别

本文详细介绍了socket编程中struct sockaddr和struct sockaddr_in的区别和作用。sockaddr_in作为sockaddr的扩展,更清晰地分离了IP地址和端口信息,常用于ipv4网络通信。

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

sockaddr和sockaddr_in的区别

sockaddr和sockaddr_in详解

1、struct sockaddr和struct sockaddr_in这两个结构体用来处理网络通信的地址。
2、在各种系统调用或者函数中,只要和网络地址打交道,就得用到这两个结构体。
3、网络中的地址包含3个方面的属性:
(1) 地址类型: ipv4还是ipv6
(2) ip地址
(3) 端口
相应的,头文件有如下定义:
include <netinet/in.h>
struct sockaddr {
   
   
    unsigned short    sa_family;    // 2 bytes address family, AF_xxx
    char              sa_data[14];     // 14 bytes of protocol address
};
// IPv4 AF_INET sockets:
struct sockaddr_in {
   
   
    short            sin_family;       // 2 bytes e.g. AF_INET, AF_INET6
    unsigned short   sin_port;    // 2 bytes e.g. htons(3490)
    struct in_addr   sin_addr;     // 4 bytes see struct in_addr, below
    char             sin_zero[8];     // 8 bytes zero this if you want to
};
struct in_addr {
   
   
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值