欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

TcpServer.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_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

復制代碼 代碼如下:

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

相關文章

  • 基于C語言實現(xiàn)學生選課系統(tǒng)

    基于C語言實現(xiàn)學生選課系統(tǒng)

    這篇文章主要為大家詳細介紹了基于C語言實現(xiàn)學生選課系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • C++嵌入式內(nèi)存管理詳情

    C++嵌入式內(nèi)存管理詳情

    這篇文章主要介紹了C++嵌入式內(nèi)存管理,是對上一篇內(nèi)存的一個補充,主要講解Linux中的內(nèi)存;這部分對于一些端側(cè)部署的伙伴來說比較重要,推薦針對不同的板子,下面來看看詳細內(nèi)容吧,需要的朋友可以參考一下
    2021-12-12
  • C語言實現(xiàn)實驗設備管理系統(tǒng)

    C語言實現(xiàn)實驗設備管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)實驗設備管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • 一文詳解C++中的mutable關鍵字

    一文詳解C++中的mutable關鍵字

    在C++中mutable關鍵字正如字面意思所示,表示「可變的」之意,一般在以下兩種情況中使用較多,一是修飾類中的變量,用來突破const的限制,二是在Lambda表達式中使用,用來捕獲修改表達式之外的變量值,下面我們就針對這兩種使用場景逐個介紹
    2023-10-10
  • C++ 詳細講解對象的構(gòu)造順序

    C++ 詳細講解對象的構(gòu)造順序

    對象的構(gòu)造往往和構(gòu)造函數(shù)會牽扯在一起,構(gòu)造函數(shù)的函數(shù)可能會由非常復雜的邏輯所組成,不同類的構(gòu)造函數(shù)的程序邏輯很可能是相互依賴的,當這種相互依賴一旦成立,那么對象的構(gòu)造順序很可能導致難以調(diào)試的Bug出現(xiàn)
    2022-04-04
  • C++實現(xiàn)圖書管理系統(tǒng)課程設計(面向?qū)ο?

    C++實現(xiàn)圖書管理系統(tǒng)課程設計(面向?qū)ο?

    這篇文章主要為大家詳細介紹了C++實現(xiàn)圖書管理系統(tǒng)課程設計,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C語言在輸入輸出時遇到的常見問題總結(jié)

    C語言在輸入輸出時遇到的常見問題總結(jié)

    大家在平時的做題中是否會遇到和我一樣的煩惱,題目的代碼已經(jīng)基本完成,但是在輸出時候,總是和題目給出的樣例輸出格式不同?,導致題目不能通過。為了解決這一煩惱,我總結(jié)了以下幾點,需要的可以參考一下
    2022-09-09
  • MFC實現(xiàn)連連看游戲之地圖顯示

    MFC實現(xiàn)連連看游戲之地圖顯示

    這篇文章主要為大家詳細介紹了MFC實現(xiàn)連連看游戲之地圖顯示,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • C++常見異常處理原理及代碼示例解析

    C++常見異常處理原理及代碼示例解析

    這篇文章主要介紹了C++常見異常處理原理及代碼示例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • 詳解C語言中結(jié)構(gòu)體的使用

    詳解C語言中結(jié)構(gòu)體的使用

    結(jié)構(gòu)體是一些值的集合,這些值稱為成員變量,結(jié)構(gòu)體的每個成員可以是不同類型的變量。本文將通過示例為大家詳細講講C語言中結(jié)構(gòu)體的使用,需要的可以參考一下
    2022-07-07

最新評論