windows socket代码
时间: 2023-12-23 09:04:52 浏览: 77
当然,我可以提供一些基本的 Windows Socket 代码示例。下面是一个简单的示例,展示了如何在 Windows 上使用 Socket 进行客户端和服务器之间的通信。
首先,我们需要包含 `<winsock2.h>` 头文件,并链接到 `ws2_32.lib` 库。
```c
#include <stdio.h>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
int main() {
WSADATA wsaData;
SOCKET clientSocket;
struct sockaddr_in serverAddress;
char serverIP[] = "127.0.0.1";
int serverPort = 12345;
char message[] = "Hello, Server!";
char buffer[1024] = {0};
// 初始化 Winsock
if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) {
printf("Failed to initialize Winsock.\n");
return 1;
}
// 创建客户端套接字
clientSocket = socket(AF_INET, SOCK_STREAM, 0);
if (clientSocket == INVALID_SOCKET) {
printf("Failed to create socket.\n");
WSACleanup();
return 1;
}
// 设置服务器地址
serverAddress.sin_family = AF_INET;
serverAddress.sin_port = htons(serverPort);
serverAddress.sin_addr.s_addr = inet_addr(serverIP);
// 连接到服务器
if (connect(clientSocket, (struct sockaddr*)&serverAddress, sizeof(serverAddress)) < 0) {
printf("Failed to connect to server.\n");
closesocket(clientSocket);
WSACleanup();
return 1;
}
// 发送数据到服务器
if (send(clientSocket, message, strlen(message), 0) < 0) {
printf("Failed to send data to server.\n");
closesocket(clientSocket);
WSACleanup();
return 1;
}
// 接收来自服务器的响应
if (recv(clientSocket, buffer, sizeof(buffer), 0) < 0) {
printf("Failed to receive data from server.\n");
closesocket(clientSocket);
WSACleanup();
return 1;
}
printf("Server response: %s\n", buffer);
// 关闭套接字和清理 Winsock
closesocket(clientSocket);
WSACleanup();
return 0;
}
```
以上示例代码展示了一个简单的客户端,它连接到指定 IP 地址和端口的服务器,并发送一条消息,然后接收服务器的响应。请根据您的实际需求进行调整和扩展。
请注意,这只是一个基本示例,实际应用中可能需要处理更多的错误和异常情况。
阅读全文