首页 > 编程知识 正文

联合体结构体区别,类个结构体区别

时间:2023-05-04 06:27:21 阅读:205830 作者:4824

                                             粉丝不过W

  struct sockaddr struct sockaddr_in 这两个结构体都是用来 处理网络通信的地址

/* *此数据结构用做bind、connect、recvfrom、sendto等函数的参数,指明地址信息 *note: * 目标地址和端口信息在一起 */#include <sys/socket.h>struct sockaddr{ //地址家族,一般“AF_xxx”的形式,通常使用AF_INET unsigned short sa_family; // 14字节协议地址,目标地址和端口信息 char sa_data[14];}

 

#include <netinet/in.h>struct  sockaddr_in { short int  sin_family; //协议族 unsigned short  int  sin_port; //端口号(使用网络字节顺序) struct in_addr  sin_addr;      //IP地址         unsigned char  sin_zero[8];    //sockaddr与sockaddr_in 保持大小相同而保留的空字节};struct  in_addr { unsigned  long  s_addr;};typedef struct in_addr { union { struct { unsigned char s_b1, s_b2, s_b3, s_b4; } S_un_b; struct { unsigned short s_w1,                        s_w2; } S_un_w; unsigned long S_addr; } S_un;} IN_ADDR;

sockaddr_insockaddr并列的结构,指向sockaddr_in的结构体的指针,同样可以 指向sockraddr的结构体,并代替它

struct sockaddr_in mysock;bind(sockfd,(struct sockaddr *)&mysock,sizeof(struct sockaddr); /* bind的时候进行转化 */

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。