Visual Studio 2019 C++实现socket通信,添加ws2_32.lib库,新手代码
生活随笔
收集整理的這篇文章主要介紹了
Visual Studio 2019 C++实现socket通信,添加ws2_32.lib库,新手代码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
因版本問題原 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++實現socket通信,添加ws2_32.lib庫,新手代碼
環境: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+±>常規->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);//創建套接字SOCKET servSock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);//綁定套接字struct sockaddr_in sockAddr;memset(&sockAddr, 0, sizeof(sockAddr)); //每個字節用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));//進入監聽狀態listen(servSock, 20);//接收客戶端消息SOCKADDR clntAddr;int nSize = sizeof(SOCKADDR);SOCKET clntSock = accept(servSock, (SOCKADDR*)& clntAddr, &nSize);//向客戶端發送消息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);//創建套接字SOCKET clntSock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);//向服務器發送消息sockaddr_in sockAddr;memset(&sockAddr, 0, sizeof(sockAddr)); //每個字節都用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);//輸出接收到的數據cout << "服務端:" << szBuffer << endl;//向服務端發送消息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库,新手代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习修炼(三)——自动求导机制
- 下一篇: MYSQL,Oracle,SQL数据库在