然后怎么主动断开服务器
时间: 2024-02-01 08:02:29 浏览: 17
要在客户端主动断开与服务器的连接,可以使用 `close` 函数关闭套接字描述符。以下是一个简单的示例代码:
```cpp
#include <iostream>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
int main() {
// 创建套接字
int clientSocket = socket(AF_INET, SOCK_STREAM, 0);
if (clientSocket == -1) {
std::cerr << "Failed to create socket." << std::endl;
return -1;
}
// 服务器地址信息
std::string serverIP = "127.0.0.1"; // 服务器IP地址
int serverPort = 8080; // 服务器端口号
// 设置服务器地址信息
sockaddr_in serverAddress{};
serverAddress.sin_family = AF_INET;
serverAddress.sin_port = htons(serverPort);
// 将IP地址从字符串转换为网络字节序
if (inet_pton(AF_INET, serverIP.c_str(), &(serverAddress.sin_addr)) <= 0) {
std::cerr << "Invalid address/Address not supported." << std::endl;
return -1;
}
// 连接服务器
if (connect(clientSocket, (struct sockaddr*)&serverAddress, sizeof(serverAddress)) == -1) {
std::cerr << "Failed to connect to server." << std::endl;
return -1;
}
// 连接成功,可以进行通信了
std::cout << "Connected to server." << std::endl;
// 执行一些通信操作...
// 关闭套接字
close(clientSocket);
return 0;
}
```
在上述代码中,通过调用 `close` 函数来关闭套接字描述符 `clientSocket`。这将导致客户端与服务器之间的连接被断开。需要注意的是,在关闭套接字之前,你可能需要执行其他必要的操作,如发送一些结束通信的指令给服务器,并等待确认。这取决于你的具体需求和协议设计。