当前位置: 首页 > news >正文

网站结构合理关键词优化排名系统

网站结构合理,关键词优化排名系统,中国纪检监察报简介,响应式网站解决方案实现了一个基本的 TCP 服务器&#xff0c;可以接受多个客户端连接&#xff0c;然后持续接收客户端发送的信息&#xff0c; 最后将接收到的信息再发送回客户端 。 源码 头文件&#xff08;TCPServerTest.h&#xff09; #include <iostream> #include <winsock2.h&g…

实现了一个基本的 TCP 服务器,可以接受多个客户端连接,然后持续接收客户端发送的信息, 最后将接收到的信息再发送回客户端 。

源码 

头文件(TCPServerTest.h)

#include <iostream>
#include <winsock2.h>
#include <ws2tcpip.h>#include <thread>
#include <functional> // 添加这个头文件以使用 std::bind#include <string>#pragma comment(lib, "ws2_32.lib")class TCPSever {
public:TCPSever(int port);~TCPSever();int createSocket();  //创建套接字int serverPreparation();  //服务器连接准备int startConnectClient();  //接受连接客户端void handleClient(SOCKET clientSocket);  //处理客户端int Port;WSADATA wsaData;SOCKET serverSocket;struct sockaddr_in serverAddr, clientAddr;int addrLen = sizeof(clientAddr);
};

 源文件(TCPServerTest.cpp)

#include "TCPServerTest.h"TCPSever::TCPSever(int port):Port(port)
{// 初始化 Windows Sockets,传入的参数MAKEWORD(2, 2)指定使用 Winsock 2.2 版本,  成功返回0,失败返回非0的错误值if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) {  //std::cerr << "Error initializing Winsock\n";}else{createSocket();serverPreparation();startConnectClient();}
}TCPSever::~TCPSever()
{closesocket(this->serverSocket);  // 关闭与服务端的连接,关闭服务端套接字WSACleanup();  //清理 Winsock 库资源
}int TCPSever::createSocket()
{// 创建套接字this->serverSocket = socket(AF_INET, SOCK_STREAM, 0);if (this->serverSocket == INVALID_SOCKET) {std::cerr << "Error creating socket\n";WSACleanup();return 1;}
}int TCPSever::serverPreparation()
{// 设置服务器地址信息this->serverAddr.sin_family = AF_INET;this->serverAddr.sin_addr.s_addr = INADDR_ANY;this->serverAddr.sin_port = htons(Port);// bind 函数 可以绑定套接字到指定地址和端口if (bind(this->serverSocket, (struct sockaddr*)&serverAddr, sizeof(serverAddr)) == SOCKET_ERROR) {std::cerr << "Error binding socket\n";closesocket(this->serverSocket);WSACleanup();return 1;}// listen函数:开始监听连接,参数10表示等待连接队列的最大长度为 10if (listen(this->serverSocket, 10) == SOCKET_ERROR) {std::cerr << "Error listening for connections\n";closesocket(this->serverSocket);WSACleanup();return 1;}std::cout << "Server listening on port " << Port << std::endl;
}int TCPSever::startConnectClient()
{while (true)  //循环接收数据{SOCKET newClientSocket;// 接受客户端连接  accept函数:在循环中等待客户端连接,一旦有客户端连接,会返回一个新的套接字用于与该客户端通信,并获取客户端的地址信息newClientSocket = accept(this->serverSocket, (struct sockaddr*)&clientAddr, &addrLen);if (newClientSocket == INVALID_SOCKET) {std::cerr << "Error accepting connection\n";continue;}char clientIP[INET_ADDRSTRLEN];if (inet_ntop(AF_INET, &clientAddr.sin_addr, clientIP, INET_ADDRSTRLEN) == nullptr) {std::cerr << "Error converting client IP address\n";}else {std::cout << "Client: " << std::string(clientIP)+ ":" + std::to_string(ntohs(clientAddr.sin_port)) << std::endl;std::thread clientThread(std::bind(&TCPSever::handleClient, this, newClientSocket));  //连上后和客户端进行数据clientThread.detach();}}
}void TCPSever::handleClient(SOCKET clientSocket)
{const char* welcomeMessage = "Welcome to the server!\n";send(clientSocket, welcomeMessage, strlen(welcomeMessage), 0);  // 向客户端发送信息char buffer[1024];while (true){int bytesRead = recv(clientSocket, buffer, sizeof(buffer) - 1, 0);if (bytesRead > 0) {buffer[bytesRead] = '\0';std::cout << "Received: " << buffer << std::endl;std::string response = "received: " + std::string(buffer);send(clientSocket, response.c_str(), response.length(), 0);}else {std::cerr << "Connection closed by client\n";closesocket(clientSocket);return;}}
}

调用:

#include "TCPServerTest.h"int main() {TCPSever server = TCPSever(8888);
}

结果

可以看到服务端可以支持多个客户端连接 

客户端代码见:

【C++】创建TCP客户端-CSDN博客

http://www.yayakq.cn/news/862014/

相关文章:

  • 免x网站公司官网如何推广
  • 网站模板批量下载免费做推广的网站有哪些
  • WordPress制作小说网站网络系统集成工程师
  • 电子商务专业网站东省住房和城乡建设厅网站
  • 珠海 网站 设计网站背景怎么做
  • 网站建设以及推广提案书苏州调查公司有哪些
  • 简易网站建设wordpress分类文章表格显示
  • 网站内容保护北京seo关键词优化外包
  • 网站开发网站运营怎么做如何提高外贸网站排名
  • 屋领网站固链wordpress读写分离设置
  • 西安网站建设小程序开发湖南省建一公司官网
  • 深圳福田网站制作开发公司做管理公司天然气怎么做帐
  • 怎么利用360域名做网站个人网站推广软件
  • 定制建设网站设计制作小车一教学设计
  • 建设通网站上能查到的企业医疗器械一类二类三类
  • 两学一做网站专题可商用图片素材网站
  • 邢台好蜘蛛网站建设建e全景室内设计网
  • 网站开发技术服务合同范本网站开发价格报表模板
  • 北京房产网站建设wordpress 搜索结果分页
  • 永久免费制作网站保健品网站怎么做的
  • 建站工具 比较重庆市建设工程信息网官网招投标公告
  • 郑州建站宁波网站开发建设公司
  • 做原油期货关注什么网站开发公司 工程管理中存在问题
  • 郑州上海做网站的公司有哪些外贸网站发外链
  • 网站备案所需材料wordpress warning:
  • 打开陕西建设厅网站微信网站建设 知乎
  • 炫酷的企业网站做购物网站怎么赚钱
  • 城市网站建设摘要论文产品创意设计作品
  • 网站 建设需浙江省建设厅官方网站
  • 网页游戏平台软件厦门优化网站