Windows socket客户端带啊吗
时间: 2023-10-02 19:05:20 浏览: 51
以下是一个简单的Windows socket客户端代码示例,它连接到指定的服务器并发送一条消息,然后接收服务器的响应并打印出来:
```C++
#include <stdio.h>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
int main() {
// 初始化Winsock
WSADATA wsaData;
int iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);
if (iResult != 0) {
printf("WSAStartup failed with error: %d\n", iResult);
return 1;
}
// 创建一个socket对象
SOCKET clientSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (clientSocket == INVALID_SOCKET) {
printf("socket failed with error: %ld\n", WSAGetLastError());
WSACleanup();
return 1;
}
// 定义服务器的地址和端口号
sockaddr_in serverAddress;
serverAddress.sin_family = AF_INET;
serverAddress.sin_addr.s_addr = inet_addr("127.0.0.1");
serverAddress.sin_port = htons(8888);
// 连接到服务器
iResult = connect(clientSocket, (SOCKADDR*)&serverAddress, sizeof(serverAddress));
if (iResult == SOCKET_ERROR) {
printf("connect failed with error: %d\n", WSAGetLastError());
closesocket(clientSocket);
WSACleanup();
return 1;
}
// 发送一条消息
const char* message = "Hello, server!";
iResult = send(clientSocket, message, strlen(message), 0);
if (iResult == SOCKET_ERROR) {
printf("send failed with error: %d\n", WSAGetLastError());
closesocket(clientSocket);
WSACleanup();
return 1;
}
// 接收服务器的响应
char response[1024];
iResult = recv(clientSocket, response, sizeof(response), 0);
if (iResult > 0) {
response[iResult] = '\0';
printf("Server response: %s\n", response);
}
else if (iResult == 0) {
printf("Connection closed by server.\n");
}
else {
printf("recv failed with error: %d\n", WSAGetLastError());
}
// 关闭socket连接
closesocket(clientSocket);
WSACleanup();
return 0;
}
```
需要注意的是,这里的服务器地址和端口号需要根据实际情况进行修改。同时,客户端需要先连接到服务器,然后再发送消息和接收响应。