首页 > 代码库 > UNP_02_socket编程
UNP_02_socket编程
套接字地址结构:
每个协议簇都定义了它自己的套接字地址结构。 这些结构的名字都已 sockaddr_ 开头, 并对应每个协议簇的唯一后缀结束。
IPv4套接字地址结构:
1 struct in_addr { 2 in_addr_t s_addr; // 32-bit IPv4 address, network byte ordered 3 }; 4 5 struct sockaddr_in { 6 uint8_t sin_len; // length of structure 7 sa_family_t sin_family; // AF_INET 8 in_port_t sin_port ; // 16-bit TCP or UDP port number, network byte ordered
9 struct in_addr sin_addr; //32-bit IPv4 address,network byte ordered
10 char sin_zero[8]; //unused 13
};
套接字地址结构仅在给定主机上使用:虽然结构中的某些成员(如IP地址和端口号) 用在不同主机间的通信中,但结构本身并不参与通信。
通用套接字地址结构
当作为参数传递给一个套接字函数时,套接字地址结构总是通过指针来传递,但通过指针来取得此参数的套接字函数必须处理来自所支持的任何协议簇的套接字地址结构。
问题是如何声明所传指针的数据类型。 ANSI C中的解决办法是: 它由通用的指针类型 void * . 但套接字函数是在ANSI C之前定义的。1982年采用了一个办法是,定义一个 通用套接字结构(在 <sys/socket.h>中定义的)
struct sockaddr { uintt_t sa_len; sa_fmaily_t sa_family; char sa_data[14];};
UNP_02_socket编程
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。