用C++编写一个程序,编写出实现客户机(CLIENT)类的代码
时间: 2024-03-24 10:38:43 浏览: 18
好的,以下是一个简单的客户机(CLIENT)类的代码,实现了基本的连接和发送消息功能:
```cpp
#include <iostream>
#include <string>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
class Client {
private:
int sock;
struct sockaddr_in server;
public:
Client(const std::string& ip, int port) {
sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock == -1) {
std::cerr << "Failed to create socket\n";
exit(EXIT_FAILURE);
}
server.sin_addr.s_addr = inet_addr(ip.c_str());
server.sin_family = AF_INET;
server.sin_port = htons(port);
if (connect(sock, (struct sockaddr*)&server, sizeof(server)) < 0) {
std::cerr << "Connection failed\n";
exit(EXIT_FAILURE);
}
}
void send_message(const std::string& message) {
if (send(sock, message.c_str(), message.length(), 0) < 0) {
std::cerr << "Failed to send message\n";
exit(EXIT_FAILURE);
}
}
~Client() {
close(sock);
}
};
int main() {
Client client("127.0.0.1", 8080);
client.send_message("Hello Server!");
return 0;
}
```
解释一下代码:
- `Client` 是客户机类,在构造函数中创建 socket,并连接到指定的服务器地址和端口号。
- `send_message` 函数用于向服务器发送消息。
- 在 `main` 函数中创建一个 `Client` 对象,然后调用 `send_message` 函数发送消息。
这只是一个简单的示例,实际情况中可能还需要处理连接错误、超时等情况,需要更加完善的错误处理机制。