c++套接字客户端主动连接服务器代码
时间: 2023-08-24 15:59:03 浏览: 52
以下是一个使用C++套接字库(Socket Library)创建客户端并主动连接服务器的基本示例代码:
```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;
}
```
以上代码中,`socket` 函数用于创建套接字,`connect` 函数用于连接服务器。在 `connect` 函数中,我们需要将服务器的IP地址和端口号转换为网络字节序,并填充到 `sockaddr_in` 结构体中。如果连接成功,就可以进行后续的通信操作。最后,使用 `close` 函数关闭套接字。
请注意,这只是一个基本示例,实际的代码可能需要更多的错误处理和逻辑来处理数据的发送和接收。另外,你需要根据实际情况修改服务器的IP地址和端口号。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)