ipv6例子
一个IPv6通讯的例子
/* sudochen@163.com
*
*
*/
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <unistd.h>
#include <sys/wait.h>
#include <arpa/inet.h>
#define LOCAL_IPV6_ADDR "2222:250:3001:1::1"
#define IPV6_PORT 8888
char msg[] = {"hello world\0"};
int main(int argc, char **argv)
{
int fd_client, fd_server;
int ret;
int size;
struct sockaddr_in6 server_addr,client_addr;
fd_client = socket(AF_INET6,SOCK_DGRAM,0);
if (fd_client < 0) {
printf("socket create for ipv6 failed\n");
return -1;
}
memset(&server_addr,0,sizeof(server_addr));
server_addr.sin6_family = AF_INET6;
server_addr.sin6_port = htons(IPV6_PORT);
inet_pton(AF_INET6,LOCAL_IPV6_ADDR,server_addr.sin6_addr.__in6_u.__u6_addr8);
ret = sendto(fd_client,msg,strlen(msg),0,
(struct sockaddr*)(&server_addr),
sizeof(server_addr));
if (ret < 0) {
printf("socket send for ipv6 failed\n");
close(fd_client);
return -1;
}
close(fd_client);
}
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <unistd.h>
#include <sys/wait.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <unistd.h>
#include <time.h>
#include <linux/if_ether.h>
#include <net/if.h>
#include <netinet/ip.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>
#include <sys/ioctl.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <netdb.h>
#include <stdlib.h>
#include <assert.h>
#include <netpacket/packet.h>
#define IPV6_PORT 8888
char msg[] = {"hello world\0"};
int main(int argc, char **argv)
{
int fd_client, fd_server;
int ret;
int size;
struct ifreq ifr;
struct sockaddr_in6 server_addr,client_addr;
memset(msg,0,sizeof(msg)) ;
int i = 0;
fd_client = socket(AF_INET6,SOCK_DGRAM,0);
if (fd_client < 0) {
printf("socket create for ipv6 failed\n");
return -1;
}
memset(&server_addr,0,sizeof(server_addr));
server_addr.sin6_family = AF_INET6;
server_addr.sin6_port = htons(IPV6_PORT);
inet_pton(AF_INET6,"2222:250:3001:1::1",server_addr.sin6_addr.__in6_u.__u6_addr8);
printf("IP :");
for (i=0;i<16;i++){
printf("%02x ",server_addr.sin6_addr.__in6_u.__u6_addr8[i]);
}
printf("\n");
ret = bind(fd_client,(struct sockaddr*)(&server_addr),sizeof(struct sockaddr_in6));
if (ret < 0) {
perror("bind error\n");
}
size = sizeof(client_addr);
ret = recvfrom(fd_client,msg,sizeof(msg),0,(struct sockaddr*)(&client_addr),&size);
if (ret < 0) {
printf("resvfrom error\n");
}
printf("%s\n",msg);
close(fd_client);
return 0;
ret =
close(fd_client);
}
ipv6例子的更多相关文章
- IPv6下网络编程socket, TCP和UDP例子,以及兼容IPV4和IPV6的类
一.TCP socket ipv6与ipv4的区别 服务器端源代码如下: #include <stdio.h> #include <stdlib.h> #include < ...
- 第二章:Internet地址结构
引言 本章主要介绍了: 如何为Internet中的设备分配IP地址. 有助于理由可扩展性的地址结构分配方式. 特殊用途的地址. 表示IP地址 IPv4地址 长32位,采用点分四组或点分十进制来表示. ...
- 在Linux下禁用IPv6的方法小结
在Linux下禁用IPv6的方法小结--http://www.jb51.net/LINUXjishu/335724.html 这篇文章主要介绍了在Linux下禁用IPv6的方法小结,禁用IPv6的操作 ...
- Openwrt笔记-IPv6与启动顺序
之前使用了nat6方案和x3c8021x实现了校园网上网和IPv6连接:但实际使用时经常出现莫名奇妙的问题.IPv6状态要么是无法连接网络,要么是无法连接Internet:经过研究,发现大概是自启动项 ...
- coco2dx服务器简单例子
实现的单个socket例子,了解socket原理. 先创建一个win32的项目(命令行的),作为服务端 // SocketServer.cpp : 定义控制台应用程序的入口点.// #include ...
- linux 下使rdate命令支持ipv6 ntp server 同步时间
如果使用linux 下,busybox自带的rdate命令 去ipv6 的ntp server 同步时间的话,会提示invalid argument :无效参数. 那么现在下载rdate的源码并对其进 ...
- IPv6 相关的工作简介
这里说明下,仅仅是IPv6在开发板上的相关的工作简介,没有很详细,都是自己一边积累,一边实践的.能帮助其他人最好,也算是给自己做个备忘录. 一.首先说下DHCPv6相关的.这里我使用的是DHCP6s. ...
- tcpprep 对IPV6的支持
在采用tcpreplay对包实施回放前,需要对包执行预处理,tcpprep就是完成这个任务的.tcpprep要做的处理就是生成一个cache文件,根据tcpprep wiki的介绍http://tcp ...
- google学术反向代理及IPV6免流量上网【教育网BUPT】
google反向代理 google https://awk.so/ 学术反向代理 https://awk.so/scholar/?hl=zh-CN 2015年1.1号开始流量计费,2元/G 无VPS用 ...
随机推荐
- mouseChildren启示
将aSprite的 mouseChildren 属性设置为 false ,可以实现mouseClick 事件的目标为 aSprite对象,而不是其子对象中的任一个.
- html+css 技巧
3.css定义的技巧:[1].为了将来的css代码优化,建议所有的属性上要带上“:” [2].某些html 标签,有自己默认的css属性值, 例如h1 标签就有自己的属性值,自动就是加粗显 ...
- Asp.net GridView控件使用纪要
1:数据绑定 GridView 支持数据绑定的数据源格式比较多,例如可以使用ObjectDataSource绑定数据源, Dataset,datatable,List<T>等 2:列绑定 ...
- JavaScript数组的一些方法集合
数组方法集合 push()添加到数组末尾,并返回修改后数组的长度 var a=array.push('a','b'); alert(a);//2 pop() 移除数组最后一项,返回移除的项. shif ...
- 简单的通用TreeView(WPF)
工作中要为很多类创建TreeView, 很多时候仅仅是因为要显示字段不同, 就得Ctrl+C.Ctrl+V复制一份几乎相同的代码, 这难免让人生厌, 于是希望像泛型集合的扩展方法那样, 可以在使用的时 ...
- 读取xml文件报错:Invalid byte 2 of 2-byte UTF-8 sequence。
程序读取xml文件后,系统报“Invalid byte 2 of 2-byte UTF-8 sequence”错误,如何解决呢? 1.程序解析xml的时候,出现Invalid byte 2 of 2- ...
- myql数据库在cmd下,中文乱码的问题原因
使用navicat把数据导入数据库,这些数据都是中文,导入成功,显式也正常,但是在mysql cmd下都是乱码.检查了我的mysql配置,字符编码都是utf8,包括navicat连接时候也设置过是ut ...
- Servlet目录
Servlet目录 课时1 Servlet概述12:30 课时2 servlet的第一个例子31:08 课时3 servlet的生命周期18:18 课时4 HttpServlet详细讲解31:43 ...
- mb_系列函数和普通字符函数的区别
<?php //phpinfo(); $str = 'abcdef'; echo strlen($str);// 6 echo '<br/>'; echo substr($str, ...
- 用keras的cnn做人脸分类
keras介绍 Keras是一个简约,高度模块化的神经网络库.采用Python / Theano开发. 使用Keras如果你需要一个深度学习库: 可以很容易和快速实现原型(通过总模块化,极简主义,和可 ...