孙鑫网络编程code
生活随笔
收集整理的這篇文章主要介紹了
孙鑫网络编程code
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
服務器端
/*基于TCP面向連接的 服務器*/ #include <iostream> #include <WinSock2.h> #include <stdlib.h> #include <Ws2tcpip.h> #pragma comment(lib,"Ws2_32.lib") //使用動態鏈接庫用到 using namespace std; #define _WINSOCK_DEPRECATED_NO_WARNINGS 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); //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; //調用accept的時候先定義一個地址結構體的變量,用來接收客戶端的地址信息int len = sizeof(SOCKADDR);while (1) //服務器應該永遠等待為客戶端服務{//等待客戶的請求到來 SOCKET sockConn = accept(sockSrv, (SOCKADDR*)&addrClient, &len);char sendBuf[100]; ////char sendBuf[20] = {'\0'};//inet_ntop(AF_INET,(void*)&addr2.sin_addr,sendBuf,16);sprintf_s(sendBuf, 100, "Welcome %s to www.sunxin.org", inet_ntop(AF_INET,&addrClient.sin_addr,sendBuf,16));//調用sprintf將一個數據格式化到buffer當中 //取地址//發送數據 send(sockConn, sendBuf, strlen(sendBuf) + 1, 0);char recvBuf[100]; //用來接收的字符數組//接受數據 recv(sockConn, recvBuf, 100, 0);//打印接受的數據 printf("%s\n", recvBuf);//關閉套接字 closesocket(sockConn);} }客戶端 /*基于TCP面向連接的 客戶端*/ #include <iostream> #include <WinSock2.h> #include <stdlib.h> #include <Ws2tcpip.h> #pragma comment(lib,"Ws2_32.lib") //使用動態鏈接庫用到 using namespace std; #define _WINSOCK_DEPRECATED_NO_WARNINGS 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;struct in_addr s; // IPv4地址結構體inet_pton(AF_INET, "127.0.0.1", (void*)&addrSrv.sin_addr.S_un.S_addr);//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));char recvBuf[100];recv(sockClient, recvBuf, 100, 0);printf("%s\n", recvBuf);send(sockClient, "This is zhangsan", strlen("This is zhangsan")+1,0);closesocket(sockClient);WSACleanup();//終止對套接字庫的使用}
總結
以上是生活随笔為你收集整理的孙鑫网络编程code的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab两轮自平衡小车,基于MATL
- 下一篇: 【STM32F429的DSP教程】第47