日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

Visual Studio 2019 C++实现socket通信,添加ws2_32.lib库,新手代码

發(fā)布時間:2023/12/9 c/c++ 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Visual Studio 2019 C++实现socket通信,添加ws2_32.lib库,新手代码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

因版本問題原 sockAddr.sin_addr.S_addr = inet_addr(“127.0.0.1”); 會導致編譯不通過查找不到

解決方案 改為:sockAddr.sin_addr.S_un.S_addr = inet_addr(“127.0.0.1”);

Visual Studio 2019 C++實現(xiàn)socket通信,添加ws2_32.lib庫,新手代碼

環(huán)境:Windows10
工具:visual studio 2019
包含頭文件:#include <WinSock2.h>
附加:(顯示引用dll)#pragma comment(lib,“ws2_32.lib”)

1.在工程下添加ws2_32.lib

[右鍵]項目->屬性->鏈接器->輸入->附加依賴項->編輯->添加ws2_32.lib,取消勾選"從父級或項目默認設置繼承"

1.
2.

編譯注意(版本)

因版本問題原 sockAddr.sin_addr.S_addr = inet_addr(“127.0.0.1”); 會導致編譯不通過查找不到

解決方案 改為:sockAddr.sin_addr.S_un.S_addr = inet_addr(“127.0.0.1”);

再將 屬性->C/C+±>常規(guī)->SDL檢查 設置為否

服務端代碼

#include <iostream> #include <WinSock2.h> #pragma comment(lib,"ws2_32.lib") //加載ws2_32.dll using namespace std;int main(int argv, char* argc[]) {//初始化WSADATA wsaData;WSAStartup(MAKEWORD(2, 2), &wsaData);//創(chuàng)建套接字SOCKET servSock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);//綁定套接字struct sockaddr_in sockAddr;memset(&sockAddr, 0, sizeof(sockAddr)); //每個字節(jié)用0填充sockAddr.sin_family = PF_INET; //使用ipv4sockAddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");sockAddr.sin_port = htons(8888); //端口bind(servSock, (SOCKADDR*)& sockAddr, sizeof(SOCKADDR));//進入監(jiān)聽狀態(tài)listen(servSock, 20);//接收客戶端消息SOCKADDR clntAddr;int nSize = sizeof(SOCKADDR);SOCKET clntSock = accept(servSock, (SOCKADDR*)& clntAddr, &nSize);//向客戶端發(fā)送消息const char* str = "hello client";send(clntSock, str, strlen(str) + sizeof(char), NULL);char szBuffer[MAXBYTE] = { 0 };recv(clntSock, szBuffer, MAXBYTE, NULL);cout << "客戶端:" << szBuffer << endl;//關閉套接字closesocket(clntSock);closesocket(servSock);//終止dll使用WSACleanup();system("pause");return 0;}

客戶端代碼

#include <iostream> #include <WinSock2.h>#pragma comment(lib,"ws2_32.lib")using namespace std;int main(int argv, char* argc[]) {//初始化WSADATA wsaData;WSAStartup(MAKEWORD(2, 2), &wsaData);//創(chuàng)建套接字SOCKET clntSock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);//向服務器發(fā)送消息sockaddr_in sockAddr;memset(&sockAddr, 0, sizeof(sockAddr)); //每個字節(jié)都用0填充sockAddr.sin_family = PF_INET;sockAddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");sockAddr.sin_port = htons(8888);connect(clntSock, (SOCKADDR*)& sockAddr, sizeof(SOCKADDR));//接收服務器消息char szBuffer[MAXBYTE] = { 0 };recv(clntSock, szBuffer, MAXBYTE, NULL);//輸出接收到的數(shù)據(jù)cout << "服務端:" << szBuffer << endl;//向服務端發(fā)送消息const char* str = "hello server";send(clntSock, str, strlen(str) + sizeof(char), NULL);//關閉套接字closesocket(clntSock);//終止dllWSACleanup();system("pause");return 0; }

運行調試結果

服務端

客戶端

總結

以上是生活随笔為你收集整理的Visual Studio 2019 C++实现socket通信,添加ws2_32.lib库,新手代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。