udp ipv6套接字编程和ipv4接口类似,参数略有不同,流程都包括创建套接字、绑定地址、发送等。

下面是一个udp ipv6 demo, 包括创建ipv6套接字、绑定地址和发送数据等。

首先先在linux上配置一个本地站点地址,然后使用这个地址发送。

//linux上添加IPv6地址命令
sudo ip -6 addr add fd11::100/64 dev eth0
/**  Description : IPv6 UDP套接字编程示例*  Author      : mason*  Date        : 201808*/
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <errno.h>
#include <string.h>
#include <stdio.h>/* IPv6压缩格式地址 */
static char src[] = "fd11::100";
static char dst[] = "fd11::200";void main()
{int udp6_socket, ret, ttl, on, addr_len;struct sockaddr_in6 saddr;struct sockaddr_in6 daddr;char buffer[] = "Hello World6";/* 设置IPv6地址,这个函数支持三种IPv6地址格式,包括首选格式、压缩格式和映射格式*/if ((inet_pton(AF_INET6, (char *)&src[0], &saddr.sin6_addr)) != 1){printf("invalid ipv6 addr \r\n");return ;}if ((inet_pton(AF_INET6, (char *)&dst[0], &daddr.sin6_addr)) != 1){printf("invalid ipv6 addr \r\n");return ;}    addr_len = sizeof(struct sockaddr_in6);saddr.sin6_family = AF_INET6;saddr.sin6_port = htons(30000);daddr.sin6_family = AF_INET6;daddr.sin6_port = htons(40000);/* 创建IPv6套接字,IPv6使用AF_INET6 */udp6_socket = socket(AF_INET6, SOCK_DGRAM, 0);if (udp6_socket == -1){printf("create udp6_socket fail\r\n");return;}/* 绑定地址 */if (bind(udp6_socket, (struct sockaddr *)&saddr, addr_len)){printf("udp6 bind addr fail, err : %d\r\n", errno);close(udp6_socket);return;}/* 发送 */ret = sendto(udp6_socket, &buffer[0], sizeof(buffer), 0, (struct sockaddr *)&daddr, addr_len);if (ret > 0){printf("udp6 send %d bytes success \r\n", ret);}/* 关闭套接字 */close(udp6_socket);return;
}

Makefile:

udp6:$(CC) -o udp6 udp6_demo.c
clean:@rm -rf *.o udp6

参考资料:

1. linux error code 含义 https://blog.csdn.net/wangcg123/article/details/51218408

2. man sendto https://linux.die.net/man/2/sendto

3. man socket https://linux.die.net/man/7/socket

4 linux 下ping6 https://blog.csdn.net/hansel/article/details/5304103

Linux IPv6 UDP套接字编程示例相关推荐

  1. 【Linux网络编程】UDP 套接字编程

    [Linux网络编程]UDP 套接字编程 [1]用户数据报协议(UDP) UDP是一个简单的传输层协议,不保证UDP数据报会到达其最终目的地,不保证各个数据报的先后顺序跨网络后保持不变,也不保证每个数 ...

  2. linux c ip数据包,如何在Linux上的C / C ++中使用ipv6 udp套接字进行多播?

    (英语不是我的母语,不用担心某些句子是否很奇怪:). 我正在开发 PONG游戏, 并且通过创建一些类来帮助我管理窗口,事件-和 网络, 因为我在游戏中添加了 LAN功能 ,但是当前您必须输入您想与之联 ...

  3. linux udp套接字编程获取报文源地址和源端口(二)

    之前项目中涉及udp套接字编程,其中一个要求是获取客户端发过来报文的端口和ip地址,功能很简单,只是对这一块不很熟.之前使用的方法是通过调用recvmsg这个接口,并通过参数msg里面的msg_nam ...

  4. 网络编程---TCP/UDP套接字编程原理

    本篇介绍的是Linux下的网络编程,故有些接口是不适用于Windows的,但是具体概念和实现方法是大体一致的 本篇重在讲解原理,具体实现请戳这里->UDP套接字编程实现 介绍 网络编程套接字(s ...

  5. C++网络编程(二):UDP套接字编程

    目录 基本特点 流程 基于UDP的数据I/O函数 UDP客户端套接字的地址分配 UDP套接字的数据边界 未连接UDP套接字.已连接UDP套接字 创建已连接UDP套接字 代码示例 参考资料 基本特点 U ...

  6. TCP和UDP套接字编程

    一.Socket简单介绍 如果要在应用层调用传输层的服务,进行相关程序的设计,就要涉及到套接字编程.套接字也称之为Socket,本质上它就是利用传输层提供的一系列Api来进行网络应用程序的设计. 网络 ...

  7. UDP套接字编程——Python语言描述

    首先,回顾一下.在我们使用Socket编程之前的一些网络的概念. IP:它是用来标识处于Internet之中的端系统的. MAC:它是用于在同一局域网中标识不同的计算机的. 端口号:它是用来标识同一台 ...

  8. JAVA UDP套接字编程

    JAVA UDP套接字编程 UDP套接字 无连接 非可靠传输 面向数据报 package com.lius.udp;import java.io.IOException; import java.ne ...

  9. 《网络编程》基本 UDP 套接字编程

    在前面文章中介绍了<UDP 协议>和<套接字数据传输>.UDP 协议和 TCP 协议不同,它是一种面向无连接.不可靠的传输层协议.在基于 UDP 套接字编程中,数据传输可用函数 ...

最新文章

  1. 档案用虚拟化服务器还是物理机,利用虚拟化将一台NAS满足不同部门
  2. 【原创】C# 递归获取指定目录的子目录及其所有文件
  3. mysql 烂泥_烂泥:学习mysql的binlog配置
  4. JS魔法堂:判断节点位置关系
  5. 利用mysql的预编译机制_SQL注入笔记记录+MySQL的事务隔离级别
  6. unity3d___UGui中如何创建loading...进度条
  7. webpack:多文件、多环境、跨域处理、热加载
  8. Linux系统启动全过程
  9. python图像处理(十一)——图像锐化与边缘检测之Roberts算子、Prewitt算子、Sobel算子、Laplacian算子
  10. java__斐波那契数列
  11. dx逆向建模步骤_初级反求逆向建模(一)
  12. CentOS7.6部署nginx
  13. 人力资源管理案例选读【2】
  14. Ubuntu 安装 tbb 步骤详解
  15. 传统蓝牙base on pincode配对以及安全简单配对(Secure Simple Pairing)流程介绍
  16. mysql连接服务报错1058
  17. 美国计算机硕士不接受雅思,美国留学:不接受雅思的大学盘点
  18. 负载均衡过程中的一台机器当掉了
  19. iOS刷机后安装源和插件
  20. 期刊模板-如何去除左下角的横线

热门文章

  1. (iOS)Storyboard/xib小技巧
  2. C# 仿金山毒霸启动和关闭淡入淡出效果
  3. java mongodb排序查询_java操作mongodb基础(查询 排序 输出list)
  4. Simulating fire sales in a system of banks and asset managers(模拟银行和资产管理系统的折价销售)
  5. linux vim编辑kconfig 无法wq,Linux-4.9.2内核在mini2440上的移植(三)——编译环境测试...
  6. 对学校的希望和寄语_家长对学校的寄语怎么写
  7. c语言课设报告河海大学,2020河海大学计算机学硕838经验贴
  8. 程序的内存模型—内存四区—堆区
  9. BRCM SDK 版本IPv6问题
  10. 进程间通信-共享内存实例