套接口地址结构
来源:互联网 发布:万能快捷回复软件 编辑:程序博客网 时间:2024/04/30 06:25
套接口地址结构
大多数套接口函数都需要一个指向套接口地址结构的指针作为参数。每个协议都定义他自己的套接口地址结构,以“sokcaddr_”开头,并以对应其协议族的唯一后缀结束。IPv4套接口地址
以“sockaddr_in”命名,定义在<netinet/in.h>头文件中
struct in_addr
{
in_addr_t s_addr; //32bit IP address};
struct sockaddr_in
{
uint8_t sin_len;};
sa_family_t sin_fimily; //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];
sa_family_t:套接口地址结构地址族
socklen_t:套接口地址结构长度,为uint32_t
in_addr_t:IPv4地址,一般为uint32_t
in_port_t:端口,一般为uint16_t
IPv4两种使用方法:serv.sin_addr表示的是struct in_addr结构;而serv.sin_addr.in_addr
表示的是一个uint32整数。当作为参数传递给任一个套接口函数时,套接口地址结构是通过指针传递的。但是通过指针来取得此参数的函数必须处理来自所支持的任何协议族的套接口地址结构。所以在<sys/socket.h>中定义一个通用地址接口:
struct sockaddr
{
uint8_t sa_len;};
sa_fanily_t sa_family;
char sa_data[14];
IPv6套接口地址结构
以“sockaddr_in6”命名,定义在<netinet/in.h>头文件中
struct in6_addr
{
uint8_t s6_addr[16]; //128-bit IPv6 address};
#define SIN6_LEN //如果系统支持结构中的长度成员,则必须定义SIN6_LEN
struct sockaddr_in6
{
uint8_t sin6_len;};
sa_family_t sin6_fimily; //AF_INET6
in_port_t sin6_port; //16-bit TCP or UDP port number
//Network Byte Ordered
uint32_t sin6_flowinfo; //priority & flow lable
struct in6_addr sin6_addr; // IPv6 address
//Network byte ordered
地址转换换书在地址的文本表达和套接口地址结构中的二进制值之间进行转换。
IPv4使用:inet_addr和inet_ntoa
IPv4和IPv6都可使用:inet_pton和inet_ntop
- 套接口地址结构
- 套接口地址结构
- 1.套接口地址结构
- (1)套接口地址结构和数据类型
- 套接口地址结构和数据类型
- 套接口地址结构及IP端口转换函数简介
- 3. 生成套接口地址
- TCP几个套接口的结构
- UNP笔记1——套接口地址
- 网络编程学习笔记(Unix域套接口地址)
- 套接口
- 学习笔记《实战Linux Socket编程》第五章 为套接口绑定地址
- 不同套接口比较
- 创建套接口 socketpair()
- UDP套接口相关
- 套接口编程基础
- 套接口选项
- 1. 套接口简介
- 从数据库中读取出的数据如何在GridView显示成我们所需要的内容?
- Java实现二维码QRCode的编码和解码
- JS提示为结束的字符串常量的问题
- VC笔记(二)
- 查询优化总结
- 套接口地址结构
- 调用函数printstars输出递增星号图
- Android中实现应用切换主题机制
- 动词,名词记忆(2): ise,ize,en后缀常用词
- mysql:外键相关列必须是索引
- ArcBall二维控制三维旋转
- MySQL导入大容量SQL文件
- 那些年朋友劝,该知道的ASP.NET - jQuery查找HTML中某个节点并赋单击事件,同时取出节点中的值?
- 将代码写在Butterfly外部的方法