这篇文章将为大家详细讲解有关C++实现本地TCP通讯的示例代码,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
C++ 实现本地 TCP 通讯
引言
TCP(传输控制协议)是一种可靠的、面向连接的数据传输协议,广泛应用于网络通讯中。本指南将介绍如何使用 C++ 在本地计算机上实现 TCP 通讯。
服务器端代码
#include <iostream>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main() {
// 创建一个套接字
int server_sock = socket(AF_INET, SOCK_STREAM, 0);
if (server_sock == -1) {
std::cerr << "Error creating socket" << std::endl;
return 1;
}
// 为套接字设置服务器地址和端口
struct sockaddr_in server_addr;
server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
server_addr.sin_port = htons(1234);
// 绑定套接字到服务器地址
if (bind(server_sock, (struct sockaddr *)&server_addr, sizeof(server_addr)) == -1) {
std::cerr << "Error binding socket" << std::endl;
return 1;
}
// 监听传入连接
if (listen(server_sock, SOMAXCONN) == -1) {
std::cerr << "Error listening for connections" << std::endl;
return 1;
}
while (true) {
// 接受客户端连接
struct sockaddr_in client_addr;
socklen_t client_addr_len = sizeof(client_addr);
int client_sock = accept(server_sock, (struct sockaddr *)&client_addr, &client_addr_len);
if (client_sock == -1) {
std::cerr << "Error accepting connection" << std::endl;
continue;
}
// 处理客户端请求
// ...
// 关闭连接
close(client_sock);
}
// 关闭服务器套接字
close(server_sock);
return 0;
}
客户端端代码
#include <iostream>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main() {
// 创建一个套接字
int client_sock = socket(AF_INET, SOCK_STREAM, 0);
if (client_sock == -1) {
std::cerr << "Error creating socket" << std::endl;
return 1;
}
// 为套接字设置服务器地址和端口
struct sockaddr_in server_addr;
server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
server_addr.sin_port = htons(1234);
// 连接到服务器
if (connect(client_sock, (struct sockaddr *)&server_addr, sizeof(server_addr)) == -1) {
std::cerr << "Error connecting to server" << std::endl;
return 1;
}
// 发送数据到服务器
// ...
// 接收服务器响应
// ...
// 关闭连接
close(client_sock);
return 0;
}
运行示例
- 在命令提示符中启动服务器程序。
- 在另一个命令提示符中启动客户端程序。
- 客户端程序应能够连接到服务器程序并发送/接收数据。
注意事项
- 本示例中的端口号 1234 可以根据需要更改。
- 服务器端代码在无限循环中不断监听传入连接,直到程序终止。
- 客户端端代码在完成一次连接后关闭并退出。
以上就是C++实现本地TCP通讯的示例代码的详细内容,更多请关注编程学习网其它相关文章!