[X]关闭

sockaddr和sockaddr_in区别

文档创建者:ぉ沙皮狗的忧伤
浏览次数:4148
最后更新:2021-03-08
本帖最后由 ぉ沙皮狗的忧伤 于 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把目标地址和端口信息混在一起了,如下:
  1. struct sockaddr {  
  2.       sa_family_t sin_family;             //地址族
  3.       char sa_data[14];                //14字节,包含套接字中的目标地址和端口信息               
  4. };
复制代码



二、sockaddr_in

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

          截图202103081722118053..png



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则