请给我一套基于C++的Socket TCP通讯代码,并为每一行做好注释
时间: 2024-02-18 22:03:21 浏览: 143
好的,以下是一套基于C++的Socket TCP通讯代码,并为每一行做好注释:
```c++
#include <iostream> // 包含输入输出流库
#include <cstring> // 包含字符串库
#include <sys/socket.h> // 包含socket网络库
#include <arpa/inet.h> // 包含地址转换库
#include <unistd.h> // 包含UNIX标准库
using namespace std;
int main() {
int sock = socket(AF_INET, SOCK_STREAM, 0); // 创建一个TCP socket
if (sock == -1) { // 如果创建失败
cout << "Failed to create socket." << endl; // 输出错误信息
return -1;
}
struct sockaddr_in server_addr; // 定义服务器地址结构体
memset(&server_addr, 0, sizeof(server_addr)); // 将结构体清零
server_addr.sin_family = AF_INET; // 指定地址族为IPv4
server_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); // 设置IP地址
server_addr.sin_port = htons(8888); // 设置端口号
if (connect(sock, (struct sockaddr*)&server_addr, sizeof(server_addr)) == -1) { // 连接服务器
cout << "Failed to connect to server." << endl; // 输出错误信息
close(sock); // 关闭socket
return -1;
}
char msg[] = "Hello, server!"; // 定义消息
if (send(sock, msg, strlen(msg), 0) == -1) { // 发送消息
cout << "Failed to send message." << endl; // 输出错误信息
close(sock); // 关闭socket
return -1;
}
char buffer[1024] = {0}; // 定义接收缓冲区
if (recv(sock, buffer, 1024, 0) == -1) { // 接收服务器回复
cout << "Failed to receive message." << endl; // 输出错误信息
close(sock); // 关闭socket
return -1;
}
cout << "Received message: " << buffer << endl; // 输出接收到的消息
close(sock); // 关闭socket
return 0;
}
```
以上是一套基于C++的Socket TCP通讯代码,其中包含了创建socket、连接服务器、发送消息、接收消息和关闭socket等操作。注释中详细说明了每一行代码的作用和含义,希望能对你有所帮助!
阅读全文