ipv6实现udp编程示例

 更新时间:2020年4月25日 17:42  点击:1731

开发测试环境:WIN7SP1、VS2005

UdpServer.cpp

复制代码 代码如下:

#include <iostream>
#include <WinSock2.h>
#include <ws2tcpip.h>

#pragma comment(lib, "ws2_32.lib")

int main(int argc, char** argv)
{
 using namespace std;

 cout<<"Server Start..."<<endl;

 WORD wVersion = 0;
 WSADATA wsaData;
 memset(&wsaData, 0, sizeof(wsaData));
 wVersion = MAKEWORD(2, 2);

 if (0 != WSAStartup(wVersion, &wsaData))
 {
  return -1;
 }

 if (2 != LOBYTE(wsaData.wVersion) || 2 != HIBYTE(wsaData.wVersion))
 {
  WSACleanup();
  return -1;
 }

 struct addrinfo hints;
 struct addrinfo* res = NULL;
 memset(&hints, 0, sizeof(hints));
 hints.ai_family = AF_UNSPEC;
 hints.ai_socktype = SOCK_DGRAM;
 hints.ai_protocol = IPPROTO_UDP;
 hints.ai_flags = AI_PASSIVE;

 if (0 != getaddrinfo("192.168.0.19", "6677", &hints, &res))
 {
  WSACleanup();
  return -1;
 }

 SOCKET sk = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
 bind(sk, res->ai_addr, res->ai_addrlen);

 char recvBuf[1024] = {'\0'};
 int lenRecv = 0;

 struct sockaddr_storage storage;
 int len = sizeof(storage);
 memset(&storage, 0, len);

 lenRecv = recvfrom(sk, recvBuf, 1024, 0, (struct sockaddr*)&storage, &len);
 cout<<"Recv From Client:"<<recvBuf<<" Len:"<<lenRecv<<endl;
 sendto(sk, recvBuf, lenRecv, 0, (struct sockaddr*)&storage, len);

 WSACleanup();
 closesocket(sk);

 return 0;
}

UdpClient.cpp

复制代码 代码如下:

#include <iostream>
#include <WinSock2.h>
#include <ws2tcpip.h>

#pragma comment(lib, "ws2_32.lib")

int main(int argc, char** argv)
{
 using namespace std;

 cout<<"Client Start..."<<endl;

 WORD wVersion = 0;
 WSADATA wsaData;
 memset(&wsaData, 0, sizeof(wsaData));
 wVersion = MAKEWORD(2, 2);

 if (0 != WSAStartup(wVersion, &wsaData))
 {
  return -1;
 }

 if (2 != LOBYTE(wsaData.wVersion) || 2 != HIBYTE(wsaData.wVersion))
 {
  WSACleanup();
  return -1;
 }

 struct addrinfo hints;
 struct addrinfo* res = NULL;
 memset(&hints, 0, sizeof(hints));
 hints.ai_family = AF_UNSPEC;
 hints.ai_socktype = SOCK_DGRAM;
 hints.ai_protocol = IPPROTO_UDP;
 hints.ai_flags = AI_CANONNAME;

 if (0 != getaddrinfo("192.168.0.19", "6677", &hints, &res))
 {
  WSACleanup();
  return -1;
 }

 SOCKET sk = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
 bind(sk, res->ai_addr, res->ai_addrlen);

 char recvBuf[1024] = {'\0'};
 char sendBuf[1024] = {"abcd"};
 int len = res->ai_addrlen;
 int lenRecv = 0;

 sendto(sk, sendBuf, strlen(sendBuf), 0, res->ai_addr, len);
 lenRecv = recvfrom(sk, recvBuf, 1024, 0, res->ai_addr, &(len));
 cout<<"Recv From Server:"<<recvBuf<<" Len:"<<lenRecv<<endl;

 WSACleanup();
 closesocket(sk);

 return 0;
}

[!--infotagslink--]

相关文章

  • 服务器 UDP端口占用几千个的解决办法

    前一段时间使用NetStat命令查看服务器端口时,发现服务器udp端口开放了好多,最少在1000个以上,当时事情比较多,没有管它,今天终于有点时间,仔细检查了一下,排除了这个问题. ...2016-01-27
  • nginx使用IPV6的相关配置项介绍

    这篇文章主要介绍了nginx使用IPV6的相关配置项介绍,首先查看编译参数是否编译了IPV6模块,然后介绍了监听IPV6的配置语法,需要的朋友可以参考下...2016-01-27
  • 使用C#实现基于TCP和UDP协议的网络通信程序的基本示例

    这篇文章主要介绍了使用C#实现基于TCP和UDP协议的网络通信程序的示例,文中分别编写了基本的服务器端和客户端,代码十分简单,需要的朋友可以参考下...2020-06-25
  • C#中使用UDP通信实例

    这篇文章主要介绍了C#中使用UDP通信实例,非常实用的技巧,需要的朋友可以参考下...2020-06-25
  • c# socket编程udp客户端实现代码分享

    这篇文章主要介绍了c# socket编程实现udp客户端,大家参考使用吧...2020-06-25
  • c#实现简单控制台udp异步通信程序示例

    这篇文章主要介绍了c#实现简单控制台udp异步通信程序示例,需要的朋友可以参考下...2020-06-25
  • Qt实现UDP多线程数据处理及发送的简单实例

    本文主要介绍了Qt实现UDP多线程数据处理及发送的简单实例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-10-21
  • C#实现的UDP收发请求工具类实例

    这篇文章主要介绍了C#实现的UDP收发请求工具类,结合具体实例形式分析了C#针对UDP请求的监听、接收、发送等相关操作技巧,需要的朋友可以参考下...2020-06-25
  • ipv6实现tcp编程示例

    这篇文章主要介绍了ipv6实现tcp编程示例,需要的朋友可以参考下...2020-04-25
  • Java网络编程之UDP实现原理解析

    UDP实现通信非常简单,没有服务器,每个都是客户端,每个客户端都需要一个发送端口和一个接收端口,本文给大家介绍Java网络编程之UDP实现原理解析,感兴趣的朋友一起看看吧...2021-09-04
  • QT网络编程UDP下C/S架构广播通信(实例讲解)

    下面小编就为大家带来一篇QT网络编程UDP下C/S架构广播通信(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-04-25
  • C#基于UDP实现的P2P语音聊天工具

    这篇文章主要是一个应用,使用udp传送语音和文本等信息。在这个系统中没有服务端和客户端,相互通讯都是直接相互联系的,能够很好的实现效果。...2020-06-25
  • Java网络编程UDP协议发送接收数据

    这篇文章主要为大家详细介绍了Java网络编程UDP协议发送接收数据,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-08-17
  • java实现基于UDP协议的聊天小程序操作

    UDP是与TCP相对应的协议,UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。正因为UDP协议没有连接的过程,所以它的通信效率高;但也正因为如此,它的可靠性不如TCP协议高,本文给大家介绍java实现基于UDP协议的聊天小程序操作,感兴趣的朋友一起看看吧...2021-10-25
  • IPV4和IPV6正则表达式的深入讲解

    这篇文章主要给大家介绍了关于IPV4和IPV6正则表达式的相关资料,文中介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-05-07
  • C语言UDP传输系统源码

    这篇文章主要为大家分享了C语言UDP传输系统的源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-04-25
  • C# 使用Tcp/Udp协议的示例代码

    这篇文章主要介绍了C# 使用Tcp/Udp协议的示例,文中代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-11-03
  • udp socket客户端和udp服务端程序示例分享

    这篇文章主要介绍了udp socket客户端和udp服务端程序示例,需要的朋友可以参考下...2020-04-25
  • C#基于UDP进行异步通信的方法

    这篇文章主要介绍了C#基于UDP进行异步通信的方法,实例分析了C#基于UDP实现异步通信的相关技巧,需要的朋友可以参考下...2020-06-25
  • windows server 2008 R2 禁用ipv6和隧道适配器

    这篇文章主要介绍了windows server 2008 R2 禁用ipv6和隧道适配器,需要的朋友可以参考下...2016-01-27