分享好友 数智知识首页 数智知识分类 切换频道

c++写服务端,C++编写服务端程序

C++编写服务端程序需要使用到网络编程和多线程技术。以下是一个简单的C++服务端程序示例,使用了TCP协议进行通信。...
2025-03-20 06:2890

C++编写服务端程序需要使用到网络编程和多线程技术。以下是一个简单的C++服务端程序示例,使用了TCP协议进行通信。

首先,我们需要包含必要的头文件并定义一个服务器类:

```cpp

#include

#include

#include

#include

#include

#include

#include

class Server {

public:

Server(int port) : stop(false) {

sockfd = socket(AF_INET, SOCK_STREAM, 0);

if (sockfd < 0) {

std::cerr << "Error creating socket" << std::endl;

exit(1);

}

struct sockaddr_in server_addr;

server_addr.sin_family = AF_INET;

server_addr.sin_port = htons(port);

inet_pton(AF_INET, "127.0.0.1", &server_addr.sin_addr);

if (bind(sockfd, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0) {

std::cerr << "Error binding socket" << std::endl;

exit(1);

}

if (listen(sockfd, 5) < 0) {

std::cerr << "Error listening on socket" << std::endl;

exit(1);

}

}

void run() {

while (!stop) {

sockaddr_in client_addr;

socklen_t client_addr_size = sizeof(client_addr);

int new_sockfd = accept(sockfd, (struct sockaddr *)&client_addr, &client_addr_size);

c++写服务端,C++编写服务端程序

if (new_sockfd < 0) {

std::cerr << "Error accepting connection" << std::endl;

continue;

}

std::thread t([this, new_sockfd]() {

char buffer[1024];

    int read_size = read(new_sockfd, buffer, sizeof(buffer)
  • 1);

if (read_size <= 0) {

close(new_sockfd);

continue;

}

std::cout << "Received: " << buffer << std::endl;

});

t.detach();

}

}

private:

int sockfd;

bool stop;

};

```

接下来,我们需要创建一个主函数来启动服务端程序:

```cpp

int main(int argc, char *argv[]) {

if (argc != 2) {

std::cerr << "Usage: " << argv[0] << " " << std::endl;

return 1;

}

int port = std::stoi(argv[1]);

Server server(port);

server.run();

return 0;

}

```

这个服务端程序会监听指定的端口,当有客户端连接时,它会创建一个新的线程来处理客户端的请求。在这个例子中,我们只是简单地将接收到的数据打印出来,但在实际应用中,你可能需要根据需求对数据进行处理或发送响应。

举报
收藏 0
推荐产品更多
蓝凌 MK

智能、协同、安全、高效蓝凌MK数智化工作平台全面支撑组织数智化可持续发展Gartner预测,组装式企业在实施新功能方面能力超80%竞争对手。未来,企业亟需基于“封装业务能力”(Packaged Business Capability,简称PBC)理念,将传统OA及业务系统全面升级为组...

帆软 FineBI

数据分析,一气呵成数据准备可连接多种数据源,一键接入数据库表或导入Excel数据编辑可视化编辑数据,过滤合并计算,完全不需要SQL数据可视化内置50+图表和联动钻取特效,可视化呈现数据故事分享协作可多人协同编辑仪表板,复用他人报表,一键分享发布比传统...

简道云

丰富模板,安装即用200+应用模板,既提供标准化管理方案,也支持零代码个性化修改低成本、快速地搭建企业级管理应用通过功能组合,灵活实现数据在不同场景下的:采集-流转-处理-分析应用表单个性化通过对字段拖拉拽或导入Excel表,快速生成一张表单,灵活进行...

悟空 CRM

为什么客户选择悟空CRM?悟空CRM为您提供全方位服务客户管理的主要功能客户管理,把控全局悟空CRM助力销售全流程,通过对客户初始信息、跟进过程、 关联商机、合同等的全流程管理,与客户建立紧密的联系, 帮助销售统筹规划每一步,赢得强有力的竞争力优势。...

推荐知识更多