分享

test

 昵称9347921 2012-08-20

一.套接字地址结构

1.1 IPv4套接字地址结构 ——套接字地址结构大小至少都是16字节

struct in_addr{

in_addr_t s_addr; //uint32_t

}


struct sockaddr_in{

uint8_t sin_len; //结构的长度,IPv4至少16字节

sa_family_t sin_family; //uint8_t  uint16_t   AF_INET

in_port_t sin_port; //uint16_t

struct in_addr sin_addr; //uint32_t

char sin_zero[8]; //未使用,置0

}

1.1.1结构中的元素

1)常用数据类型

2)地址结构中的数据类型

sin_len是套接字地址结构中的长度字段,并不是所有厂家都支持;即使有长度字段,我们也无需设置和检查它,除非涉及路由套接字。

  它的数据类型典型为uint_t

sin_family sin_addr  sin_port 是地址结构中必要的字段;现在几乎所有的实现都增加了sin_zero字段,但一般未使用,只是将它置为0

sa_family_t在支持长度字段时,是uint8_t ,在不支持时,是一个uint16_t 类型。

1.1.2  ★★★注意点★★★

1TCPUDP端口号在套接字地址结构中总是以网络字节序存储(大端);

2IPv4地址的不同访问方法,假设serv是一个网际套接字地址结构,那么serv.sin_addr 是按in_addr结构引用其中的32IP地址;而serv.sin_addr.s_addr将按in_addr_t引用IP地址。

1.2 通用套接字地址结构 ——用于强制转换特定协议的套接字地址结构

struct sockaddr{

uint8_t sa_len;

sa_family_t sa_family;

char sa_data[14];

};


1)套接字地址结构总是以引用的方式传递给套接字函数。

1.3 IPv6 套接字地址结构

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多