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 {

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

被折叠的 条评论
为什么被折叠?



