最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ipv6實(shí)現(xiàn)udp編程示例

 更新時(shí)間:2014年03月30日 09:31:42   作者:  
這篇文章主要介紹了ipv6實(shí)現(xiàn)udp編程示例,需要的朋友可以參考下

開(kāi)發(fā)測(cè)試環(huán)境:WIN7SP1、VS2005

UdpServer.cpp

復(fù)制代碼 代碼如下:

#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

復(fù)制代碼 代碼如下:

#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;
}

相關(guān)文章

  • c++ 深入理解歸并排序的用法

    c++ 深入理解歸并排序的用法

    歸并排序是典型分治思想的代表——首先把原問(wèn)題分解為兩個(gè)或多個(gè)子問(wèn)題,然后求解子問(wèn)題的解,最后使用子問(wèn)題的解來(lái)構(gòu)造出原問(wèn)題的解
    2022-03-03
  • C++?基礎(chǔ)函數(shù)的介紹及使用(Vector+deque+STL)

    C++?基礎(chǔ)函數(shù)的介紹及使用(Vector+deque+STL)

    這篇文章主要介紹了C++?基礎(chǔ)函數(shù)的介紹及使用(Vector+deque+STL),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-06-06
  • c語(yǔ)言求出給定范圍內(nèi)的所有質(zhì)數(shù)

    c語(yǔ)言求出給定范圍內(nèi)的所有質(zhì)數(shù)

    本文主要介紹了c語(yǔ)言求出給定范圍內(nèi)的所有質(zhì)數(shù)的小程序。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-04-04
  • 一文掌握C語(yǔ)言中的柔性數(shù)組

    一文掌握C語(yǔ)言中的柔性數(shù)組

    柔性數(shù)組在C語(yǔ)言的?C99?標(biāo)準(zhǔn)中,引入的新特性,結(jié)構(gòu)中的最后一個(gè)元素的大小允許是未知的數(shù)組,即為柔性數(shù)組,本文給大家介紹c語(yǔ)言中的柔性數(shù)組,感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • 詳解C++中的一維數(shù)組和二維數(shù)組

    詳解C++中的一維數(shù)組和二維數(shù)組

    這篇文章主要介紹了詳解C++中的一維數(shù)組和二維數(shù)組,是C語(yǔ)言入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-09-09
  • 一篇文章帶你了解C語(yǔ)言文件操作中的幾個(gè)函數(shù)

    一篇文章帶你了解C語(yǔ)言文件操作中的幾個(gè)函數(shù)

    這篇文章主要介紹了使用C語(yǔ)言操作文件的基本函數(shù)整理,包括創(chuàng)建和打開(kāi)以及關(guān)閉文件的操作方法,需要的朋友可以參考下,希望能夠給你帶來(lái)幫助
    2021-09-09
  • C++ Qt開(kāi)發(fā)之CheckBox多選框組件的用法詳解

    C++ Qt開(kāi)發(fā)之CheckBox多選框組件的用法詳解

    Qt是一個(gè)跨平臺(tái)C++圖形界面開(kāi)發(fā)庫(kù),利用Qt可以快速開(kāi)發(fā)跨平臺(tái)窗體應(yīng)用程序,在Qt中我們可以通過(guò)拖拽的方式將不同組件放到指定的位置,實(shí)現(xiàn)圖形化開(kāi)發(fā)極大的方便了開(kāi)發(fā)效率,本章將重點(diǎn)介紹CheckBox單行輸入框組件的使用方法,需要的朋友可以參考下
    2023-12-12
  • 如何給隨機(jī)數(shù)加密

    如何給隨機(jī)數(shù)加密

    隨機(jī)數(shù)加密的簡(jiǎn)單算法,需要的朋友可以參考一下
    2013-03-03
  • Matlab實(shí)現(xiàn)好看的配對(duì)箱線圖的繪制

    Matlab實(shí)現(xiàn)好看的配對(duì)箱線圖的繪制

    配對(duì)箱線圖,常見(jiàn)于配對(duì)樣本的數(shù)據(jù)分析中,它除了能夠表現(xiàn)兩組的整體差異,還能夠清晰地呈現(xiàn)單個(gè)樣本的前后改變。本文將用Matlab實(shí)現(xiàn)配對(duì)箱線圖的繪制,需要的可以參考一下
    2022-08-08
  • C語(yǔ)言三子棋小游戲的實(shí)現(xiàn)

    C語(yǔ)言三子棋小游戲的實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言三子棋小游戲的實(shí)現(xiàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12

最新評(píng)論

清流县| 札达县| 兴和县| 徐汇区| 策勒县| 昆山市| 临澧县| 平安县| 菏泽市| 逊克县| 内黄县| 固镇县| 扎赉特旗| 东平县| 乌拉特后旗| 太原市| 阿合奇县| 富平县| 新余市| 探索| 静乐县| 北辰区| 大厂| 石渠县| 巴东县| 怀远县| 家居| 绿春县| 南漳县| 怀集县| 修武县| 贵南县| 淮滨县| 晋江市| 思南县| 军事| 柯坪县| 淮北市| 盐亭县| 个旧市| 建昌县|