sockaddr_in 结构体里面包含结构体in_addr,这是他们的关系 inet_addr()是将一个点分制的IP地址(如192.168.0.1)转换为上述结构中需要的32位IP地址(0xC0A80001) 一般用法 struct sockaddr_in sockaddr; sockaddr.sin_family = AF_INET; sockaddr.sin_port = htons(MYPORT); sockaddr.sin_addr.s_addr = inet...
bind(sockfd, (structsockaddr *)&my_addr,sizeof(structsockaddr)); structsockaddr_in{shortintsin_family;// Address familyunsignedshortintsin_port;// Port numberstructin_addrsin_addr;/* Internet address */unsignedcharsin_zero[8];/* Same size as struct sockaddr */}; in_addr structin_addr{un...
in_addr_ts_addr; }; 所以,到这里其实对用到的结构体和一些定义名就比较清楚了,sockaddr和sockaddr_in这两个结构体是能够互用的,在要使用sockaddr的地方(比如bind、connect之类的函数)都可以将sockaddr_in结构体进行强制类型转换来使用。其次就是in_addr是一个struct结构体,而in_addr_t一般是一个unsigned int 32...
下面是struct sockaddr_in中用到两个数据类型,具体定义如下: 11/*Type to represent a port.*/22typedef uint16_t in_port_t;3344structin_addr//其实就是32位IP地址55structin_addr {66unsignedlongs_addr;77};
sockaddr_in 结构体里面包含结构体in_addr,这是他们的关系 inet_addr()是将一个点分制的IP地址(如192.168.0.1)转换为上述结构中需要的32位IP地址(0xC0A80001) 一般用法struct sockaddr_in sockaddr; sockaddr.sin_family = AF_INET; sockaddr.sin_port = htons(MYPORT); sockaddr.sin_addr.s_addr = inet...
sockaddr_in 结构体里面包含结构体in_addr,这是他们的关系 inet_addr()是将一个点分制的IP地址(如192.168.0.1)转换为上述结构中需要的32位IP地址(0xC0A80001) 一般用法 struct sockaddr_in sockaddr; sockaddr.sin_family = AF_INET; sockaddr.sin_port = htons(MYPORT); ...
in_addr 用来表示一个32位的IPv4地址. in_addr_t 一般为 32位的unsigned long. 其中每8位代表一个IP地址位中的一个数值.struct sockaddr { unsigned short sa_family;char sa_data[14];};sa_family是地址家族 sa_data是14字节协议地址。用做bind、connect、recvfrom、sendto等函数的参数,指明...
sockaddr, sockaddr_in, sockaddr_in6, in_addr, in6_addr的联系和区别 to be continued.
1、struct in_addr struct in_addr就是32位IP地址。 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_un; #define s_addr S_un.S_addr }; 2、sockaddr_instruct sockaddr_in { short ...