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

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

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

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

TcpServer.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_STREAM;
 hints.ai_protocol = IPPROTO_TCP;
 hints.ai_flags = AI_PASSIVE;

 if (0 != getaddrinfo(NULL, "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);

 if (0 != listen(sk, 5))
 {
  WSACleanup();
  closesocket(sk);
  return -1;
 }

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

 SOCKET newSk = accept(sk, (struct sockaddr*)&storage, &len);
 closesocket(sk);

 char recvBuf[1024] = {'\0'};
 int lenRecv = 0;
 lenRecv = recv(newSk, recvBuf, 1024, 0);
 cout<<"Recv From Client:"<<recvBuf<<" Len:"<<lenRecv<<endl;
 send(newSk, recvBuf, lenRecv, 0);

 WSACleanup();
 closesocket(newSk);

 return 0;
}

TcpClient.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_STREAM;
 hints.ai_protocol = IPPROTO_TCP;
 hints.ai_flags = AI_CANONNAME;

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

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

 if (0 != connect(sk, res->ai_addr, res->ai_addrlen))
 {
  WSACleanup();
  closesocket(sk);
  return -1;
 }

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

 send(sk, sendBuf, strlen(sendBuf), 0);
 lenRecv = recv(sk, recvBuf, 1024, 0);
 cout<<"Recv From Server:"<<recvBuf<<" Len:"<<lenRecv<<endl;
 

 WSACleanup();
 closesocket(sk);

 return 0;
}

相關(guān)文章

  • C語言程序的編譯與預(yù)處理詳解

    C語言程序的編譯與預(yù)處理詳解

    這篇文章主要介紹了C語言程序的編譯與預(yù)處理,包括介紹了C和C++混合編程的情況,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-10-10
  • 淺談C++模板元編程

    淺談C++模板元編程

    本篇文章主要介紹了淺談C++模板元編程,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • C/C++位段超詳細(xì)整理大全

    C/C++位段超詳細(xì)整理大全

    以位為單位來定義結(jié)構(gòu)體中的成員變量所占的空間內(nèi)存,含有位段的結(jié)構(gòu)體稱為位段結(jié)構(gòu),這篇文章主要給大家介紹了關(guān)于C/C++位段的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • C++聯(lián)合體union用法實(shí)例詳解

    C++聯(lián)合體union用法實(shí)例詳解

    這篇文章主要介紹了C++聯(lián)合體union用法,較為詳細(xì)的分析了C++中聯(lián)合體的概念、實(shí)用技巧及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2015-05-05
  • C++使用棧實(shí)現(xiàn)括號(hào)匹配的代碼詳解

    C++使用棧實(shí)現(xiàn)括號(hào)匹配的代碼詳解

    在編程中,括號(hào)匹配是一個(gè)常見問題,尤其是在處理數(shù)學(xué)表達(dá)式、編譯器解析等任務(wù)時(shí),棧是一種非常適合處理此類問題的數(shù)據(jù)結(jié)構(gòu),能夠精確地管理括號(hào)的匹配問題,本文將通過 C++ 代碼,詳細(xì)講解如何使用棧來實(shí)現(xiàn)括號(hào)匹配,需要的朋友可以參考下
    2025-02-02
  • C語言實(shí)現(xiàn)推箱子項(xiàng)目

    C語言實(shí)現(xiàn)推箱子項(xiàng)目

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)推箱子項(xiàng)目,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • 基于C語言實(shí)現(xiàn)的貪吃蛇游戲完整實(shí)例代碼

    基于C語言實(shí)現(xiàn)的貪吃蛇游戲完整實(shí)例代碼

    這篇文章主要介紹了基于C語言實(shí)現(xiàn)的貪吃蛇游戲完整實(shí)例代碼,對(duì)于學(xué)習(xí)游戲開發(fā)的朋友有一定的借鑒價(jià)值,需要的朋友可以參考下
    2014-08-08
  • C++?primer超詳細(xì)講解關(guān)聯(lián)容器

    C++?primer超詳細(xì)講解關(guān)聯(lián)容器

    兩個(gè)主要的關(guān)聯(lián)容器為map和set,map中元素是一些關(guān)鍵字—值對(duì),關(guān)鍵字起索引的作用,值則表示與索引相關(guān)聯(lián)的數(shù)據(jù)。set中每個(gè)元素只包含一個(gè)關(guān)鍵字,set支持高效的關(guān)鍵字查詢操作——檢查一個(gè)給定關(guān)鍵字是否在set中
    2022-07-07
  • 深入ORACLE變量的定義與使用的詳解

    深入ORACLE變量的定義與使用的詳解

    本篇文章是對(duì)ORACLE變量的定義與使用進(jìn)行了詳細(xì)的分析與介紹,需要的朋友參考下
    2013-05-05
  • 用C語言實(shí)現(xiàn)自動(dòng)售貨機(jī)

    用C語言實(shí)現(xiàn)自動(dòng)售貨機(jī)

    這篇文章主要為大家詳細(xì)介紹了用C語言實(shí)現(xiàn)自動(dòng)售貨機(jī),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01

最新評(píng)論

河南省| 孝感市| 永城市| 贞丰县| 山阳县| 皮山县| 墨竹工卡县| 台北市| 怀远县| 灌阳县| 龙岩市| 探索| 三河市| 海晏县| 夏河县| 宜宾县| 六安市| 疏勒县| 聊城市| 青龙| 淄博市| 商南县| 延寿县| 惠州市| 政和县| 铜梁县| 临洮县| 许昌市| 天全县| 尖扎县| 平定县| 横峰县| 姚安县| 奎屯市| 房产| 中阳县| 郸城县| 龙里县| 嘉黎县| 仲巴县| 子洲县|