怎么创建tcp-ip客户端socket用c++编写
时间: 2024-05-11 08:19:12 浏览: 18
以下是一个简单的C++程序,用于创建TCP/IP客户端套接字并连接到服务器:
```c++
#include <iostream>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <cstring>
int main(int argc, char *argv[]) {
// 创建套接字
int sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock == -1) {
std::cerr << "Could not create socket" << std::endl;
return 1;
}
// 服务器地址
std::string server_address = "127.0.0.1";
int server_port = 12345;
// 创建socket地址
sockaddr_in server_sockaddr{};
server_sockaddr.sin_family = AF_INET;
server_sockaddr.sin_addr.s_addr = inet_addr(server_address.c_str());
server_sockaddr.sin_port = htons(server_port);
// 连接到服务器
if (connect(sock, (struct sockaddr *) &server_sockaddr, sizeof(server_sockaddr)) == -1) {
std::cerr << "Could not connect to server" << std::endl;
close(sock);
return 1;
}
// 发送数据
std::string message = "Hello, server!";
if (send(sock, message.c_str(), strlen(message.c_str()), 0) == -1) {
std::cerr << "Could not send message to server" << std::endl;
close(sock);
return 1;
}
// 接收数据
char buffer[1024];
memset(buffer, 0, sizeof(buffer));
if (recv(sock, buffer, sizeof(buffer), 0) == -1) {
std::cerr << "Could not receive message from server" << std::endl;
close(sock);
return 1;
}
std::cout << "Received message from server: " << buffer << std::endl;
// 关闭套接字
close(sock);
return 0;
}
```
上面的代码中,我们首先创建了一个套接字(使用`socket`函数),并设置了服务器的地址和端口号,然后连接到服务器(使用`connect`函数)。在连接成功后,我们发送一条消息给服务器(使用`send`函数),接收服务器的响应消息(使用`recv`函数),并在最后关闭套接字(使用`close`函数)。
需要注意的是,以上代码仅为示例,实际应用中需要对错误进行更完善的处理。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)