用c++语言创建一个TCP通信的类
时间: 2023-05-15 13:05:31 浏览: 62
好的,以下是一个用 C 语言创建 TCP 通信的类的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define MAXLINE 1024
class TCPClient {
private:
int sockfd;
struct sockaddr_in servaddr;
public:
TCPClient(const char* ip, int port) {
sockfd = socket(AF_INET, SOCK_STREAM, 0);
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(port);
inet_pton(AF_INET, ip, &servaddr.sin_addr);
}
void connect() {
if (connect(sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr)) < 0) {
perror("connect error");
exit(1);
}
}
void send(const char* msg) {
write(sockfd, msg, strlen(msg));
}
char* recv() {
char* buffer = (char*)malloc(MAXLINE);
int n = read(sockfd, buffer, MAXLINE);
buffer[n] = '\0';
return buffer;
}
void close() {
close(sockfd);
}
};
```
你可以使用这个类来创建一个 TCP 客户端,连接到指定的 IP 地址和端口,发送和接收数据。例如:
```c
TCPClient client("127.0.0.1", 8080);
client.connect();
client.send("Hello, server!");
char* response = client.recv();
printf("Server response: %s\n", response);
free(response);
client.close();
```
这将连接到本地主机上的端口 8080,并发送一条消息 "Hello, server!",然后等待服务器的响应并打印它。