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

C++ 中 socket編程實例詳解

 更新時間:2017年06月15日 09:40:57   投稿:lqh  
這篇文章主要介紹了C++ 中 socket編程實例詳解的相關(guān)資料,需要的朋友可以參考下

C++ 中 socket編程實例詳解

sockets(套接字)編程有三種,流式套接字(SOCK_STREAM),數(shù)據(jù)報套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的socket編程是采用的流式套接字。在這個程序中,將兩個工程添加到一個工作區(qū)。要鏈接一個ws2_32.lib的庫文件。

服務(wù)器端編程的步驟:

1:加載套接字庫,創(chuàng)建套接字(WSAStartup()/socket());

2:綁定套接字到一個IP地址和一個端口上(bind());

3:將套接字設(shè)置為監(jiān)聽模式等待連接請求(listen());

4:請求到來后,接受連接請求,返回一個新的對應(yīng)于此次連接的套接字(accept());

5:用返回的套接字和客戶端進行通信(send()/recv());

6:返回,等待另一連接請求;

7:關(guān)閉套接字,關(guān)閉加載的套接字庫(closesocket()/WSACleanup())。

服務(wù)器端代碼如下:

#include <stdio.h>
#include <Winsock2.h>
void main()
{
 WORD wVersionRequested;
 WSADATA wsaData;
 int err;
 
 wVersionRequested = MAKEWORD( 1, 1 );
 
 err = WSAStartup( wVersionRequested, &wsaData );
 if ( err != 0 ) {
 return;
 }
 
 if ( LOBYTE( wsaData.wVersion ) != 1 ||
    HIBYTE( wsaData.wVersion ) != 1 ) {
 WSACleanup( );
 return;
 }
 SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);

 SOCKADDR_IN addrSrv;
 addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
 addrSrv.sin_family=AF_INET;
 addrSrv.sin_port=htons(6000);
 
 bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));

 listen(sockSrv,5);

 SOCKADDR_IN addrClient;
 int len=sizeof(SOCKADDR);
 while(1)
 {
 SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);
 char sendBuf[50];
 sprintf(sendBuf,"Welcome %s to here!",inet_ntoa(addrClient.sin_addr));
 send(sockConn,sendBuf,strlen(sendBuf)+1,0);
 char recvBuf[50];
 recv(sockConn,recvBuf,50,0);
 printf("%s\n",recvBuf);
 closesocket(sockConn);
 }

}

客戶端編程的步驟:

1:加載套接字庫,創(chuàng)建套接字(WSAStartup()/socket());

2:向服務(wù)器發(fā)出連接請求(connect());

3:和服務(wù)器端進行通信(send()/recv());

4:關(guān)閉套接字,關(guān)閉加載的套接字庫(closesocket()/WSACleanup())。

客戶端的代碼如下:

#include <stdio.h>
#include <Winsock2.h>
void main()
{
 WORD wVersionRequested;
 WSADATA wsaData;
 int err;
 
 wVersionRequested = MAKEWORD( 1, 1 );
 
 err = WSAStartup( wVersionRequested, &wsaData );
 if ( err != 0 ) {
 return;
 }
 
 if ( LOBYTE( wsaData.wVersion ) != 1 ||
    HIBYTE( wsaData.wVersion ) != 1 ) {
 WSACleanup( );
 return;
 }
 SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);
 
 SOCKADDR_IN addrSrv;
 addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
 addrSrv.sin_family=AF_INET;
 addrSrv.sin_port=htons(6000);
 connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
 send(sockClient,"hello",strlen("hello")+1,0);
 char recvBuf[50];
 recv(sockClient,recvBuf,50,0);
 printf("%s\n",recvBuf);
 
 closesocket(sockClient);
 WSACleanup();
}

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • 使用Qt封裝一個發(fā)送http請求通用類

    使用Qt封裝一個發(fā)送http請求通用類

    這篇文章主要為大家詳細介紹了如何使用Qt封裝一個通用類,可以通過QNetworkRequest和QNetworkReply進行http請求,感興趣的可以了解一下
    2024-12-12
  • C++快速冪與大數(shù)取模算法示例

    C++快速冪與大數(shù)取模算法示例

    這篇文章主要介紹了C++快速冪算法和大數(shù)取模算法的示例,對C++程序員來說有一定的幫助,有需要的朋友可以參考借鑒,下面來一起看看。
    2016-08-08
  • C++中map容器的具體使用

    C++中map容器的具體使用

    本文主要介紹了C++中map容器的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 基于Matlab實現(xiàn)水波倒影特效的制作

    基于Matlab實現(xiàn)水波倒影特效的制作

    這篇文章主要介紹了如何利用Matlab制作出水波倒影的特效,文中的示例代碼講解詳細,對我們學(xué)習(xí)Matlab有一定幫助,需要的可以參考一下
    2022-03-03
  • C語言實現(xiàn)簡單井字棋游戲

    C語言實現(xiàn)簡單井字棋游戲

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡單井字棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • C?語言的弱符號與弱引用你了解嗎

    C?語言的弱符號與弱引用你了解嗎

    這篇文章主要為大家詳細介紹了C?語言弱符號與弱引用,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C++函數(shù)模板與類模板相同與不同介紹

    C++函數(shù)模板與類模板相同與不同介紹

    C++語言的模板技術(shù)包括函數(shù)模板和類模板,模板技術(shù)是一種代碼重用技術(shù),函數(shù)和類是C++語言中兩種主要的重用代碼形式,這篇文章主要介紹了C++函數(shù)模板和類模板,需要的朋友可以參考下
    2022-08-08
  • 深入理解C語言的void*

    深入理解C語言的void*

    本文主要介紹了C語言的void*,包括它的任意性、編譯器對void*的類型檢查以及需要顯式類型轉(zhuǎn)換的規(guī)則,具有一定的參考價值,感興趣的可以了解一下
    2025-01-01
  • C++11中std::declval的實現(xiàn)機制淺析

    C++11中std::declval的實現(xiàn)機制淺析

    這篇文章主要給大家介紹了關(guān)于C++11中std::declval實現(xiàn)機制的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    2017-07-07
  • C語言中改變目錄的相關(guān)操作函數(shù)詳解

    C語言中改變目錄的相關(guān)操作函數(shù)詳解

    這篇文章主要介紹了C語言中改變目錄的相關(guān)操作函數(shù)詳解,分別是fchdir()函數(shù)和rewinddir()函數(shù)的使用方法,需要的朋友可以參考下
    2015-09-09

最新評論

梅河口市| 德江县| 东莞市| 焦作市| 建水县| 曲周县| 墨玉县| 郧西县| 高雄市| 天等县| 通州区| 射阳县| 横山县| 额尔古纳市| 黑龙江省| 桂阳县| 奈曼旗| 久治县| 炎陵县| 贞丰县| 平湖市| 恩施市| 绥德县| 莱州市| 巴中市| 临湘市| 湖州市| 罗田县| 扎囊县| 紫金县| 大丰市| 灵石县| 酉阳| 巩义市| 曲阳县| 壤塘县| 诏安县| 丰城市| 沙雅县| 通许县| 舒兰市|