VS2019 C++建立TCPclient的代码
时间: 2023-12-08 15:04:58 浏览: 20
以下是使用 Visual Studio 2019 创建一个简单的 C++ TCP 客户端的代码示例:
```cpp
#include <iostream>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
int main() {
WSADATA wsaData;
if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) {
std::cerr << "Failed to initialize winsock" << std::endl;
return 1;
}
// 创建套接字
SOCKET clientSocket = socket(AF_INET, SOCK_STREAM, 0);
if (clientSocket == INVALID_SOCKET) {
std::cerr << "Failed to create socket" << std::endl;
return 1;
}
// 设置服务器地址和端口
sockaddr_in serverAddress{};
serverAddress.sin_family = AF_INET;
serverAddress.sin_port = htons(12345); // 将端口号转换为网络字节顺序
serverAddress.sin_addr.s_addr = inet_addr("127.0.0.1"); // 设置服务器 IP 地址
// 连接到服务器
if (connect(clientSocket, (struct sockaddr*)&serverAddress, sizeof(serverAddress)) == SOCKET_ERROR) {
std::cerr << "Failed to connect to server" << std::endl;
closesocket(clientSocket);
WSACleanup();
return 1;
}
// 发送数据到服务器
const char* message = "Hello, server!";
if (send(clientSocket, message, strlen(message), 0) == SOCKET_ERROR) {
std::cerr << "Failed to send data to server" << std::endl;
closesocket(clientSocket);
WSACleanup();
return 1;
}
// 接收服务器的响应
char buffer[1024];
memset(buffer, 0, sizeof(buffer));
if (recv(clientSocket, buffer, sizeof(buffer) - 1, 0) == SOCKET_ERROR) {
std::cerr << "Failed to receive data from server" << std::endl;
closesocket(clientSocket);
WSACleanup();
return 1;
}
std::cout << "Response from server: " << buffer << std::endl;
// 关闭套接字和清理 winsock
closesocket(clientSocket);
WSACleanup();
return 0;
}
```
这段代码使用 Winsock 库实现了一个简单的 TCP 客户端。它首先初始化 Winsock,然后创建一个套接字,设置服务器地址和端口,连接到服务器,发送数据,接收服务器的响应,最后关闭套接字和清理 Winsock。
请注意,这段代码假设服务器 IP 地址为 "127.0.0.1",端口号为 12345。你需要根据你实际的服务器地址和端口号进行修改。