文章插圖

文章插圖
一、打開兩個VS2019,創建兩個控制臺程序分別命名為client和servers
【socket 傳輸文件 socket數據傳輸原理】1、包含頭文件及庫文件
#include <WinSock2.h>#pragma comment(lib,"ws2_32.lib")#pragma warning(disable:4996)2、初始化及反初始化代碼,記下來就行,永遠不變//初始化代碼,死記下來就行WORD wVersion = MAKEWORD(2, 2);WSADATA wsadata;if (WSAStartup(wVersion, &wsadata) != 0){return 0;}//反初始化操作WSACleanup();3、創建socketSOCKET s= socket(AF_INET, SOCK_STREAM, 0);//第一個參數協議簇(AF_INET,ipv4;AF_INET6,ipv6;AF_UNIX,本機通信)//第二個參數類型(SOCK_STREAM,TCP流;SOCK_DGRAM,UDP數據報;SOCK_RAW,原始套接字)//第三個參數一般設置0,當確定套接字使用的協議簇和類型時,這個參數的值就為0if (s==INVALID_SOCKET){return 0;//創建套接字失敗}4、綁定端口并開啟監聽sockaddr_in add;int len = sizeof(sockaddr_in);add.sin_family = AF_INET;//協議簇add.sin_addr.S_un.S_addr = inet_addr("0.0.0.0");//表示接受任意ip地址add.sin_port = htons(11111);//網絡字節序是大尾方式,本地字節序是小尾方式,需要轉換int i = bind(s, (sockaddr*)&add, len);listen(s, 5);//瞬間來五個用戶5、等待客戶端連接sockaddr_in caddr;caddr.sin_family = AF_INET;int caddrlen = sizeof(sockaddr_in);SOCKET sclient=accept(s,(sockaddr*)&caddr, &caddrlen);//重新產生一個socket用來通信if (sclient==INVALID_SOCKET){return 0;}6、發送數據并關閉連接int ret = send(sclient, "哎呦", strlen("哎呦"), 0);closesocket(sclient);三、編寫客戶端1、包含頭文件及庫文件
#include <WinSock2.h>#pragma comment(lib,"ws2_32.lib")#pragma warning(disable:4996)2、初始化及反初始化代碼,記下來就行,永遠不變//初始化代碼,死記下來就行WORD wVersion = MAKEWORD(2, 2);WSADATA wsadata;if (WSAStartup(wVersion, &wsadata) != 0){return 0;}//反初始化操作WSACleanup();3、創建socketSOCKET s= socket(AF_INET, SOCK_STREAM, 0);//第一個參數協議簇(AF_INET,ipv4;AF_INET6,ipv6;AF_UNIX,本機通信)//第二個參數類型(SOCK_STREAM,TCP流;SOCK_DGRAM,UDP數據報;SOCK_RAW,原始套接字)//第三個參數一般設置0,當確定套接字使用的協議簇和類型時,這個參數的值就為0if (s==INVALID_SOCKET){return 0;//創建套接字失敗}sockaddr_in add;int len = sizeof(sockaddr_in);add.sin_family = AF_INET;//協議簇add.sin_addr.S_un.S_addr = inet_addr("192.168.1.107");//主動連接該ip地址add.sin_port = htons(11111);//網絡字節序是大尾方式,本地字節序是小尾方式,需要轉換4、連接服務器int i = connect(s, (sockaddr*)&add, len);if (SOCKET_ERROR==i){return 0;}5、接收服務器發送的數據并關閉連接char sbuf[256] = { 0 };int ret = recv(s, sbuf, 256, 0);if (ret==0){return 0;//連接斷開}else if(ret>0){printf(sbuf);}closesocket(s);四、運行結果@err,hr 監視輸入這個可以查看錯誤信息
- pdf合并工具免費版下載 pdf文件合并工具
- Cue格式 cue什么格式文件
- 手機上csv文件用什么打開 csv文件用手機怎么打開
- dps轉為ppt dps文件轉化成pptx
- ai是什么文件格式怎么打開 新聞 ai是什么格式的文件怎么打開
- bmp是什么格式的文件怎么改成JPG bmp是什么格式的文件靜態還是動態
- bat等待幾秒 bat文件等待10分鐘
- 文件管理是什么軟件 文件管理系統是系統軟件嗎
- 什么工具可以整理磁盤碎片 磁盤碎片工具整理文件碎片的作用
- 破解壓縮文件密碼一般采用什么方式 破解壓縮文件密碼手機軟件
