windows下的socket接收C程序
时间: 2023-10-24 10:05:40 浏览: 86
以下是一个简单的 Windows 平台下使用 socket 接收数据的 C 代码示例:
```c
#include <stdio.h>
#include <winsock2.h>
#pragma comment(lib,"ws2_32.lib") // 链接 ws2_32.lib 库
int main() {
// 初始化 Winsock 库
WSADATA wsaData;
WSAStartup(MAKEWORD(2, 2), &wsaData);
// 创建套接字
SOCKET serverSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
// 绑定本地地址和端口
SOCKADDR_IN addr;
addr.sin_family = AF_INET;
addr.sin_port = htons(8080);
addr.sin_addr.s_addr = htonl(INADDR_ANY);
bind(serverSocket, (SOCKADDR*)&addr, sizeof(SOCKADDR_IN));
// 监听连接
listen(serverSocket, 10);
// 接收连接
SOCKADDR_IN clientAddr;
int clientAddrLen = sizeof(SOCKADDR_IN);
SOCKET clientSocket = accept(serverSocket, (SOCKADDR*)&clientAddr, &clientAddrLen);
// 接收数据
char buffer[1024];
int ret = recv(clientSocket, buffer, sizeof(buffer), 0);
if (ret > 0) {
printf("Received data: %s\n", buffer);
}
// 关闭套接字
closesocket(clientSocket);
closesocket(serverSocket);
// 清理 Winsock 库
WSACleanup();
return 0;
}
```
该代码使用了 Winsock 库来实现 socket 相关的操作。首先通过 `WSAStartup` 函数初始化 Winsock 库,然后创建套接字、绑定地址和端口、监听连接、接收连接以及接收数据。最后通过 `closesocket` 函数关闭套接字,并通过 `WSACleanup` 函数清理 Winsock 库。
阅读全文