转载自 https://www.bilibili.com/video/BV1ms41137De?spm_id_from=pageDriver
感谢up主的分享
//服务端 #include <stdio.h> #include <stdlib.h> #include <WinSock2.h>//Windows Socket编程头文件 #include <iostream> #include <WS2tcpip.h> #include <cstring> #pragma comment(lib, "ws2_32.lib")//链接ws2_32.lib库文件到此项目中 using namespace std; //全局常量 const int BUF_SIZE = 2048; //全局变量 SOCKET sockSer, sockCli; SOCKADDR_IN addrSer, addrCli;//address int naddr = sizeof(SOCKADDR_IN); char sendbuf[BUF_SIZE]; char inputbuf[BUF_SIZE]; char recvbuf[BUF_SIZE]; int main() { //加载socket库 WSADATA wsadata; if (WSAStartup(MAKEWORD(2,2), &wsadata) != 0) { //输出出错信息 cout << "载入socket库失败" << endl; system("pause"); return 0; } //创建Socket sockSer = socket(AF_INET, SOCK_STREAM, 0); //初始化地址包 addrSer.sin_addr.s_addr = inet_addr("192.168.0.1");//ip地址 addrSer.sin_family = AF_INET; addrSer.sin_port = htons(12248);//端口号 //绑定Socket和本地地址 bind(sockSer, (SOCKADDR*)&addrSer, sizeof(SOCKADDR)); while (1) { //监听连接请求 listen(sockSer, 5); //接受连接请求 sockCli = accept(sockSer, (SOCKADDR*)&addrCli, &naddr); if (sockCli != INVALID_SOCKET)//客户端套接口,连接成功 { cout << "连接成功!" << endl; strcpy(sendbuf, "hello!"); send(sockCli, sendbuf, sizeof(sendbuf), 0); } } //关闭套接字 closesocket(sockSer); closesocket(sockCli); WSACleanup(); return 0; }
//客户端 #include <stdio.h> #include <stdlib.h> #include <WinSock2.h>//Windows Socket编程头文件 #include <iostream> #include <WS2tcpip.h> #include <cstring> #pragma comment(lib, "ws2_32.lib")//链接ws2_32.lib库文件到此项目中 using namespace std; //全局常量 const int BUF_SIZE = 2048; //全局变量 SOCKET sockSer, sockCli; SOCKADDR_IN addrSer, addrCli;//address int naddr = sizeof(SOCKADDR_IN); char sendbuf[BUF_SIZE]; char inputbuf[BUF_SIZE]; char recvbuf[BUF_SIZE]; int main() { //加载socket库 WSADATA wsadata; if (WSAStartup(MAKEWORD(2, 2), &wsadata) != 0) { //输出出错信息 cout << "载入socket库失败" << endl; system("pause"); return 0; } //创建Socket sockCli = socket(AF_INET, SOCK_STREAM, 0); //初始化客户端地址包 addrCli.sin_addr.s_addr = inet_addr("129.0.0.1");//ip地址 addrCli.sin_family = AF_INET; addrCli.sin_port = htons(12248);//端口号 //初始化服务器地址 addrSer.sin_addr.s_addr = inet_addr("192.168.0.1");//ip地址 addrSer.sin_family = AF_INET; addrSer.sin_port = htons(12248);//端口号 while (1) { if (connect(sockCli, (SOCKADDR*)&addrSer,sizeof(addrSer)) != SOCKET_ERROR) { recv(sockCli, recvbuf, sizeof(recvbuf), 0); cout << recvbuf << endl; } } //关闭套接字 closesocket(sockSer); closesocket(sockCli); WSACleanup(); return 0; }
问题记录 https://blog.csdn.net/weixin_42731241/article/details/96143934
Caesar卢尚宇
2021年2月16日