套接口地址结构
来源:互联网 发布:python 实时监控日志 编辑:程序博客网 时间:2024/04/29 21:14
套接口地址结构
IPv4套接口地址结构
IPv4套接口地址结构通常也称为“网际套接口地址结构”,它以“sockaddr_in”命名,定义在头文件<netinet/in.h>中。
struct in_addr{
in_addr_t s_addr; /*32bit IPv4 address*/
}; /*network byte ordered*/
struct sockaddr_in {
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; /*32bit IPv4 address*/
/*network byte ordered*/
char sin_zero[8]; /*unused*/
};
通用套接口地址结构
在<sys/socket.h>中定义
struct sockaddr{
uint8_t sa_len;
sa_family_t sa_family; /*address family;AF_xxx value*/
char sa_data[14]; /*ptotocol-specific address*/
};
套接口函数被定义为采用指向通用套接口地址结构的指针,例如bind函数原型:
int bind(int, struct sockaddr *, socklen_t);
这要求对这些函数的任何调用都必须将指向特定于协议的套接口地址结构的指针类型转换成指向通用套接口地址结构的指针。例如:
struct sockaddr serv;
/*fill in serv{}*/
bind(sockfd, (struct sockaddr * ) &serv, sizeof(serv));
IPv6套接口地址结构
IPv6套接口地址结构在头文件<netinet/in.h>中定义
struct in6_addr{
uint8_t s6_addr[16]; /*128 bit IPv6 address*/
/*network byte ordered*/
};
#define SIN6_LEN /*required for compile-time test*/
struct sockaddr_in6{
uint8_t sin6_len; /*length of this struct(24)*/
sa_family_t sin6_family; /*AF_INET6*/
in_port_t sin6_port; /*transport layer port#*/
/*network byte ordered*/
uint32_t sin6_flowinfo; /*priorty & flow label*/
/*network byte ordered*/
struct in6_addr sin6_addr; /*IPv6 address*/
/*network byte ordered*/
};
- 套接口地址结构
- 套接口地址结构
- 1.套接口地址结构
- (1)套接口地址结构和数据类型
- 套接口地址结构和数据类型
- 套接口地址结构及IP端口转换函数简介
- 3. 生成套接口地址
- TCP几个套接口的结构
- UNP笔记1——套接口地址
- 网络编程学习笔记(Unix域套接口地址)
- 套接口
- 学习笔记《实战Linux Socket编程》第五章 为套接口绑定地址
- 不同套接口比较
- 创建套接口 socketpair()
- UDP套接口相关
- 套接口编程基础
- 套接口选项
- 1. 套接口简介
- 老板问你忙不忙?你如何回答……
- UML复习系列之一(基本概念)【原创】
- 网站要素
- 大数量查询分页显示 微软的解决办法
- Todo - Register Intel EM64T Course
- 套接口地址结构
- JAVA2十大经典图书
- 多普达 568
- 最大公约数的算法
- ·搜索引擎Nutch介绍(1)-使用Nutch
- datagrid分页注意事项
- 微软面试题
- 盘点:2004十大落马经理人
- Java 中 对 象 的 序 列 化 技 术