源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

ipv6实现udp编程示例

  • 时间:2021-02-28 05:25 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:ipv6实现udp编程示例
开发测试环境:WIN7SP1、VS2005 UdpServer.cpp
[u]复制代码[/u] 代码如下:
#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
[u]复制代码[/u] 代码如下:
#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; }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部