结构体struct sockaddr_in, struct sockaddr,struct in_addr

一、结构体 struct sockaddr_in,  struct sockaddr,  struct in_addr


struct sockaddr_in,  struct sockaddr,struct in_addr,这是网络编程中常用的结构体,每次都记不住它们各自的成员是啥,需要临时查,为方便以后的查看,在这里总结下。


struct sockaddr {
unsigned short sa_family;  /* 地址族, AF_xxx */
char sa_data[14];  /* 14字节的协议地址*/
};

上面是通用的socket地址,具体到Internet socket,用下面的结构,二者可以进行类型转换


struct sockaddr_in {
short int sin_family; /* 地址族 */
unsigned short int sin_port; /* 端口号 */
struct in_addr sin_addr; /* Internet地址 */
unsigned char sin_zero[8]; /* 与struct sockaddr一样的长度 */

};


struct in_addr就是32位IP地址。
struct in_addr {
unsigned long s_addr;

};


也有
struct in_addr {
union {
struct { u_char s_b1,s_b2,s_b3,s_b4;} S_un_b;
struct { u_short s_w1,s_w2;} S_un_w;
u_long S_addr;//成员s_addr为长整形结构
} S_un;

};

猜你喜欢

转载自blog.csdn.net/Cholexuti/article/details/80609684