套接字编程简介: IPV4套接字地址结构/ 通用套接字地址结构/ IPV6套接字地址结构

IPv4套接字地址结构通常也称为“网际套接字地址结构”,它以sockaddr_in命名,定义在<netinet/in.h>头文件中。

struct in_addr
{
	in_addr_t s_addr;/*32-bit IPv4 address*/
					/*network byte ordered*/
};
struct sockaddr_in
{
	uint8_t sin_len;/*length if 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*/
};

对套接字地址结构做几点一般性的说明。

1.长度字段sin_len是为了增加对OSI协议的支持而随4.3BSD-Reno添加的。在此之前,第一个成员是sin_family,它是一个无符号短整数(unsigned short)。并不是所有的厂家都支持套接字地址结构的长度字段,而且POSIX规范也不要求有这个成员。该成员的数据类型uint8_t是典型的,符合POSIX的系统都提供这种形式的 数据类型。

正是因为有了长度字段,才简化了长度可变套接字地址结构的处理。

猜你喜欢

转载自www.cnblogs.com/wuyepeng/p/9727242.html