在现代软件开发中,C++网络编程 是构建高性能服务器和客户端应用的核心技能之一。本文将手把手教你使用 C++ 实现一个基于流式网络结构 的简单通信系统,即使你是编程小白,也能轻松上手!我们将围绕 C++ socket编程 和 网络通信实现 这两个关键点展开。

“流式”指的是数据像水流一样连续不断地在网络中传输。TCP 协议就是典型的流式协议——它保证数据按顺序、无差错地送达。在 C++ 中,我们通常使用 socket(套接字)来建立这种流式连接。
你需要:
我们先用 C++ 写一个简单的 TCP 服务器,它会监听某个端口,并接收客户端发来的消息。
#include <iostream>#include <cstring>#include <sys/socket.h>#include <netinet/in.h>#include <unistd.h>int main() { // 1. 创建 socket int server_fd = socket(AF_INET, SOCK_STREAM, 0); if (server_fd == -1) { std::cerr << "创建 socket 失败!\n"; return -1; } // 2. 配置服务器地址 struct sockaddr_in address; address.sin_family = AF_INET; address.sin_addr.s_addr = INADDR_ANY; address.sin_port = htons(8080); // 监听 8080 端口 // 3. 绑定 socket 到地址 if (bind(server_fd, (struct sockaddr*)&address, sizeof(address)) < 0) { std::cerr << "绑定失败!\n"; close(server_fd); return -1; } // 4. 开始监听 if (listen(server_fd, 3) < 0) { std::cerr << "监听失败!\n"; close(server_fd); return -1; } std::cout << "服务器已启动,等待客户端连接...\n"; // 5. 接受客户端连接 int client_fd = accept(server_fd, nullptr, nullptr); if (client_fd < 0) { std::cerr << "接受连接失败!\n"; close(server_fd); return -1; } // 6. 接收数据(流式读取) char buffer[1024] = {0}; read(client_fd, buffer, 1024); std::cout << "收到客户端消息: " << buffer << std::endl; // 7. 回复客户端 const char* reply = "Hello from server!"; send(client_fd, reply, strlen(reply), 0); // 8. 关闭连接 close(client_fd); close(server_fd); return 0;}接下来,我们编写一个客户端程序,用于连接服务器并发送消息。
#include <iostream>#include <cstring>#include <sys/socket.h>#include <arpa/inet.h>#include <unistd.h>int main() { // 1. 创建 socket int sock = socket(AF_INET, SOCK_STREAM, 0); if (sock == -1) { std::cerr << "创建 socket 失败!\n"; return -1; } // 2. 配置服务器地址(假设服务器在本机) struct sockaddr_in serv_addr; serv_addr.sin_family = AF_INET; serv_addr.sin_port = htons(8080); inet_pton(AF_INET, "127.0.0.1", &serv_addr.sin_addr); // 3. 连接服务器 if (connect(sock, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0) { std::cerr << "连接服务器失败!\n"; close(sock); return -1; } // 4. 发送消息 const char* message = "Hello from client!"; send(sock, message, strlen(message), 0); // 5. 接收服务器回复 char buffer[1024] = {0}; read(sock, buffer, 1024); std::cout << "收到服务器回复: " << buffer << std::endl; // 6. 关闭连接 close(sock); return 0;}在 Linux 或 macOS 终端中执行以下命令:
# 编译服务器g++ -o server server.cpp# 编译客户端g++ -o client client.cpp# 先运行服务器(新开一个终端窗口)./server# 再运行客户端./client你会看到服务器打印出客户端的消息,客户端也收到了服务器的回复。这说明你的 C++ socket编程 成功实现了双向流式通信!
通过本文,你已经掌握了如何用 C++ 实现一个基本的 流式网络结构。这是构建聊天应用、游戏服务器、API 后端等系统的基石。记住,网络通信实现 的核心在于理解 socket 的工作流程:创建 → 绑定/连接 → 读写 → 关闭。
继续练习,尝试扩展功能,你很快就能写出工业级的 C++ 网络程序!
本文由主机测评网于2025-12-08发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025124594.html