c语言sockaddr_in6,C语言socket编程总结(三) struct sockaddr_in /struct sockaddr_in6/struct addrinfo 结构体...
//lbnode
IPV4:socket
//struct sockaddr_in {ui
// __uint8_tsin_len;this
// sa_family_tsin_family;//iPv4地址族spa
// in_port_tsin_port; //端口号指针
// structin_addr sin_addr;//IPV4 addresscode
// charsin_zero[8];orm
//};字符串
lbget
IPV6:
// struct sockaddr_in6 {
// __uint8_tsin6_len; /* length of this struct(sa_family_t) */
// sa_family_tsin6_family;/* AF_INET6 (sa_family_t) */
// in_port_tsin6_port; /* Transport layer port # (in_port_t) */
// __uint32_tsin6_flowinfo;/* IP6 flow information */
// struct in6_addrsin6_addr;/* IP6 address */
// __uint32_tsin6_scope_id;/* scope zone index */
// };
lb
getAddrInfo中的参数:
// struct addrinfo {
// intai_flags;/* AI_PASSIVE, AI_CANONNAME, AI_NUMERICHOST */
// intai_family;/* PF_xxx */地址族,
// intai_socktype;/* SOCK_xxx */套接字类型
// intai_protocol;/* 0 or IPPROTO_xxx for IPv4 and IPv6 */协议类型
// socklen_t ai_addrlen;/* length of ai_addr */指向缓冲区的字节数
// char*ai_canonname;/* canonical name for hostname */主机的规范化名称
// structsockaddr *ai_addr;/* binary address */指向sockaddr结构的指针。getaddrinfo返回的每一个addrinfo结构内的ai_addr都指向一个filled-in套接字地址结构。
// structaddrinfo *ai_next;/* next structure in linked list */指向链表中下一个addrinfo结构的指针,若是是链表的最后一个addrinfo结构,则ai_next为NULL。
// };
lb
转换IPV4和IPV6:
/**
int getaddrinfo(
const char* nodename,//传的是主机地址的字符串;
const char* servname,
const struct addrinfo* hints,
struct addrinfo** res
);
* nodename:节点名能够是主机名,也能够是数字地址。(IPV4的10进点分,或是IPV6的16进制)
* servname:包含十进制数的端口号或服务名如(ftp,http)
* hints:是一个空指针或指向一个addrinfo结构的指针,由调用者填写关于它所想返回的信息类型的线索。
* res:存放返回addrinfo结构链表的指针,指向由一个或多个addrinfo结构体组成的链表,包含了主机的响应信息
* 返回值:成功返回0,失败返回非零的 sockets error code
*/
lb
c语言sockaddr_in6,C语言socket编程总结(三) struct sockaddr_in /struct sockaddr_in6/struct addrinfo 结构体...相关推荐
- C语言Socket编程为什么要将sockaddr_in强制转换成sockaddr?
在阅读尹圣雨<TCP/IP网络编程>(C语言示例)的时候,看到将sockaddr_in类型的struct的指针强制转换成了sockaddr类型的指针. 比如hello_client.c: ...
- C语言概述(三)-- 宏定义、指针、结构体
宏定义 指针 结构体 1.宏定义 #define 每个参数加上括号,结果也加上括号 否则,可能会因为运算的优先级问题导致结果错误 #define ADD(a,b) ((a ...
- socket编程之addrinfo结构体与getaddrinfo函数
1. 概述 IPv4中使用gethostbyname()函数完成主机名到地址解析,这个函数仅仅支持IPv4,且不允许调用者指定所需地址类型的任何信息,返回的结构只包含了用于存储IPv4地址的空间.IP ...
- C++socket编程(三):3.3 bind端口
在socket编程中,我们要用到bind绑定socket套接字,用上了你前面的逻辑创建的socket. 如下代码: //绑定//用bind绑定,绑定哪一个端口if (bind(sock, (socka ...
- 初识C语言(1)(2)(3)(4) C语言入门 保姆级教程 变量 常量 字符串 转义字符 操作符 关键字 字符串 指针 函数 结构体 数组 选择语句 循环语句
一.如何写C语言代码 1.编译器 2.创建项目 3.创建源文件 4.写代码 5.编译+链接+运行 项目名字不要汉语,不要特殊字符,不要加空格,项目路径一般为你想要的路径 C语言中,一般创建.c源文件, ...
- C++socket编程(三)3.2 创建TCPServer设置服务信息并讲解网络字节序
一:创建TCPserver 如下代码: 创建TCPserver设置服务信息代码如下 int sock = socket(AF_INET, SOCK_STREAM, 0);if (sock == -1) ...
- socket编程(三)
1.REUSEADDR 服务器端尽可能使用REUSEADDR 在绑定之前尽可能调用setsockopt来设置REUSEADDR套接字选项. 使用REUSEADDR选项可以使得不必等待TIME_WAIT ...
- 25. Python语言 Web 开发 之 Socket 编程 · 第一章 UDP发送与接收数据
UDP发送与接收数据 本章主题 关键词 前导: 计算机网络的发展及基础网络概念 两台电脑的通信 IP地址介绍及分类 IP地址与IP协议 Windows 和 Linux 查看网卡信息 IP地址分类 以太 ...
- 3d打印c语言与g代码混合编程,[转载]三轴运动控制器、串口运动控制器、支持G代码、3D打印机、雕刻、源代码开放、...
串口运动控制器,支持G代码.M代码 3D打印机.雕刻机.激光雕刻.木工雕刻.微型CNC.开源GRBL运动控制平台 电源电压:DC12V-24V CPU:Atmega328P 串口:RS232电平,通信 ...
最新文章
- 精选 Github 近期13款开源工具包!(附数据集、链接)
- 不是你无法入门自然语言处理(NLP),而是你没找到正确的打开
- ins40401 oracle,安装orace grid infrastructure 提示[INS-40404]问题
- 在以下说法错误的是_关于犬麻醉常见的错误认知
- 漫画 | 如何凭实力炒老板鱿鱼,并喜提N+1~
- vmware的win98安装声音驱动
- Android开发画布销毁,Android DialogFragment 在页面销毁下的使用方式
- C语言-----职工信息管理系统
- 2.8 转置矩阵及对称矩阵
- Ubuntu20.04使用FreeRADIUS搭建EAP认证环境
- 解决QML debugging is enabled.Only use this in a safe environment.警告
- 如何关闭服务器系统防火墙设置方法,怎么关闭防火墙 Windows自带防火墙关闭方法...
- 【applicationContext.xml】spring 配置文件头部声明
- 867 · 四键键盘
- 苏州地区十大有影响力的调查研究咨询公司
- CF786A - Berzerk
- 微信小程序全栈开发实践 第二章 微信小程序组件介绍及使用 -- 2.9 页面链接组件,如何自定义一个导航栏?
- 微信辅助验证 信息填写正确 却提示绑卡信息错误的解决办法
- MATLAB程序:BPSK/QPSK的调制与解调
- IFE 耀耀学院(基础综合)
热门文章
- android 全面屏/刘海屏有效适配
- @NotEmpty注解不生效,爆红解决方法
- 体外(无细胞)蛋白表达试剂盒-原核蛋白表达系统(基于大肠杆菌内源的转录和翻译机制)
- [转]Android 触摸屏校准
- Appstore app链接mt参数app类型解析
- ES6(迭代器、Set、Map、数组去重)
- pycharm折线图不显示折线_Matplotlib的折线图
- HDU 6040 Hints of sd0061
- Maven dependencyManagement中的依赖版本会覆盖传递依赖版本
- 华为鸿蒙智慧屏有b站吗,鸿蒙、智慧屏,是华为的“阳谋”