uint8_t sin_len; /*length of structure(16)*/ sa_family_t sin_family; /*AF_INET*/ in_port_t sin_port; /*16-bit TCP or UDP port number*/ /*network byte ordered*/ struct in_addr sin_addr; /*32-bit IPv4 address*/ /*network byte ordered*/ char sin_zero[8]; /*unused*/ }...
sockaddr_in是socket类的成员函数,用于创建一个IN_ADDR类型的指针,该指针用于表示目标主机地址。它的函数原型如下: int sockaddr_in(int sockfd, struct sockaddr_in *addr, int nlen); 参数解释如下: sockfd:需要创建的套接字文件描述符。 addr:用于存储目标主机地址的指针。 nlen:目标主机地址的长度,以字节为...
sa_family_t sin_family; //地址族(Address Family),也就是地址类型 uint16_t sin_port; //16位的端口号 struct in_addr sin_addr; //32位IP地址 char sin_zero[8]; //不使用,一般用0填充 }; 1) sin_family 和 socket() 的第一个参数的含义相同,取值也要保持一致。 2) sin_prot 为端口号。u...
sin_family表示协议簇,一般用AF_INET表示TCP/IP协议。sin_addr是一个联合体,用联合体就可以使用多种方式表示IP地址。一般我们使用其中的最后一种方式,即用无符号长整型数据来表示IP地址。此时,用的是s_nu数据成员,s_un是一个结构体,其中只有一个数据成员,即s_addr。使用方式:变量.sin_family...
sin_family: 指代协议族,在socket编程中只能是AF_INET。 sin_port: 存储端口号(使用网络字节顺序)。 sin_addr: 存储IP地址,使用in_addr这个数据结构。 sin_zero: 是为了让sockaddr与sockaddr_in两个数据结构保持大小相同而保留的空字节。 其中in_addr结构的定义如下: ...
换句话说,这个结构是通用socket地址结构,而下面的sockaddr_in是专门针对Internet域的socket地址结构。 (2)、sockaddr_in结构 1.structsockaddr_in { 2.shortsin_family; 3.u_short sin_port; 4.structin_addr sin_addr; 5.charsin_zero[8]; 6.};...
成员变量 u8_t sin_len 地址长度 sa_family_t sin_family 地址族 in_port_t sin_port 16位TCP/UDP端口号 struct in_addr sin_addr 32位IP地址 char sin_zero [SIN_ZERO_LEN] 通常全为 0,主要功能是为了与 sockaddr 结构在长度上保持一致。详细...
填值的时候使用sockaddr_in结构,而作为函数(如socket, listen, bind等)的参数传入的时候转换成sockaddr结构就行了,毕竟都是16个字符长。 通常的用法是: int sockfd; struct sockaddr_in my_addr; sockfd = socket(AF_INET, SOCK_STREAM, 0); my_addr.sin_family = AF_INET; ...
struct sockaddr_in6* ipv6 = (struct sockaddr_in6*)ptr->ai_addr; ipPtr = &(ipv6->sin6_addr); } getnameinfo(ptr->ai_addr, ptr->ai_addrlen, ipStringBuffer, sizeof(ipStringBuffer), nullptr, 0, NI_... winsocket编程获得本机IP地址和计算机名称 每个`struct sockaddr_in...
下方的 sockaddr 結構和sockaddr_in結構會搭配 IPv4 使用。 其他通訊協定會使用類似的結構。syntax 複製 struct sockaddr { ushort sa_family; char sa_data[14]; }; struct sockaddr_in { short sin_family; u_short sin_port; struct in_addr sin_addr; char sin_zero[8]; }; ...