ipv6实现udp编程示例
开发测试环境: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;
}
相关文章
- 前一段时间使用NetStat命令查看服务器端口时,发现服务器udp端口开放了好多,最少在1000个以上,当时事情比较多,没有管它,今天终于有点时间,仔细检查了一下,排除了这个问题. ...2016-01-27
- 这篇文章主要介绍了nginx使用IPV6的相关配置项介绍,首先查看编译参数是否编译了IPV6模块,然后介绍了监听IPV6的配置语法,需要的朋友可以参考下...2016-01-27
- 这篇文章主要介绍了使用C#实现基于TCP和UDP协议的网络通信程序的示例,文中分别编写了基本的服务器端和客户端,代码十分简单,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了C#中使用UDP通信实例,非常实用的技巧,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了c# socket编程实现udp客户端,大家参考使用吧...2020-06-25
- 这篇文章主要介绍了c#实现简单控制台udp异步通信程序示例,需要的朋友可以参考下...2020-06-25
- 本文主要介绍了Qt实现UDP多线程数据处理及发送的简单实例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-10-21
- 这篇文章主要介绍了C#实现的UDP收发请求工具类,结合具体实例形式分析了C#针对UDP请求的监听、接收、发送等相关操作技巧,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了ipv6实现tcp编程示例,需要的朋友可以参考下...2020-04-25
- UDP实现通信非常简单,没有服务器,每个都是客户端,每个客户端都需要一个发送端口和一个接收端口,本文给大家介绍Java网络编程之UDP实现原理解析,感兴趣的朋友一起看看吧...2021-09-04
- 下面小编就为大家带来一篇QT网络编程UDP下C/S架构广播通信(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-04-25
- 这篇文章主要是一个应用,使用udp传送语音和文本等信息。在这个系统中没有服务端和客户端,相互通讯都是直接相互联系的,能够很好的实现效果。...2020-06-25
- 这篇文章主要为大家详细介绍了Java网络编程UDP协议发送接收数据,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-08-17
- UDP是与TCP相对应的协议,UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。正因为UDP协议没有连接的过程,所以它的通信效率高;但也正因为如此,它的可靠性不如TCP协议高,本文给大家介绍java实现基于UDP协议的聊天小程序操作,感兴趣的朋友一起看看吧...2021-10-25
- 这篇文章主要给大家介绍了关于IPV4和IPV6正则表达式的相关资料,文中介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-05-07
- 这篇文章主要为大家分享了C语言UDP传输系统的源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-04-25
- 这篇文章主要介绍了C# 使用Tcp/Udp协议的示例,文中代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-11-03
- 这篇文章主要介绍了udp socket客户端和udp服务端程序示例,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了C#基于UDP进行异步通信的方法,实例分析了C#基于UDP实现异步通信的相关技巧,需要的朋友可以参考下...2020-06-25
windows server 2008 R2 禁用ipv6和隧道适配器
这篇文章主要介绍了windows server 2008 R2 禁用ipv6和隧道适配器,需要的朋友可以参考下...2016-01-27