用C++写出基于TCP的C/S—客户端代码
时间: 2024-01-12 14:02:27 浏览: 31
以下是一个简单的基于 TCP 的 C/S 客户端代码示例:
```cpp
#include <iostream>
#include <cstring>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
#define SERVER_IP "127.0.0.1" // 服务器 IP 地址
#define SERVER_PORT 8888 // 服务器端口号
int main() {
// 创建套接字
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0) {
perror("socket() error");
exit(-1);
}
// 设置服务器地址
struct sockaddr_in server_addr;
bzero(&server_addr, sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(SERVER_PORT);
if (inet_pton(AF_INET, SERVER_IP, &server_addr.sin_addr) <= 0) {
perror("inet_pton() error");
exit(-1);
}
// 连接服务器
if (connect(sockfd, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0) {
perror("connect() error");
exit(-1);
}
// 发送数据
char msg[1024] = "Hello, server!";
if (send(sockfd, msg, strlen(msg), 0) < 0) {
perror("send() error");
exit(-1);
}
// 接收数据
char buf[1024];
if (recv(sockfd, buf, sizeof(buf), 0) < 0) {
perror("recv() error");
exit(-1);
}
std::cout << "Received from server: " << buf << std::endl;
// 关闭套接字
close(sockfd);
return 0;
}
```
该代码使用了 C++ 的标准库函数 `std::cout` 进行输出。其余部分与 C 语言的代码类似。需要注意的是,C++ 中的头文件不需要使用 `.h` 后缀。