ぉ沙皮狗的忧伤 发表于 2021-3-8 17:22:44

sockaddr和sockaddr_in区别

本帖最后由 ぉ沙皮狗的忧伤 于 2021-3-8 17:28 编辑

参考网址:https://blog.csdn.net/qingzhuyuxian/article/details/79736821
struct sockaddr 和 struct sockaddr_in 这两个结构体用来处理网络通信的地址。

一、sockaddr
      sockaddr在头文件#include <sys/socket.h>中定义,sockaddr的缺陷是:sa_data把目标地址和端口信息混在一起了,如下:struct sockaddr {
      sa_family_t sin_family;             //地址族
      char sa_data;                //14字节,包含套接字中的目标地址和端口信息               
};


二、sockaddr_in          sockaddr_in在头文件#include<netinet/in.h>或#include <arpa/inet.h>中定义,该结构体解决了sockaddr的缺陷,把port和addr 分开储存在两个变量中,如下:
         

页: [1]
查看完整版本: sockaddr和sockaddr_in区别