window是 c语言TCP socket 客户端
时间: 2023-08-21 13:02:38 浏览: 115
在 Windows 环境下,C 语言 TCP socket 客户端的实现也是通过一组 Windows Sockets (Winsock) API 来实现的。下面是一个简单的 Windows 环境下的 TCP socket 客户端的代码示例:
```c
#include <stdio.h>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib") // 需要链接的库文件
#define PORT 8080
int main(int argc, char const *argv[]) {
WSADATA wsa;
SOCKET sock = INVALID_SOCKET;
struct sockaddr_in serv_addr;
char *hello = "Hello from client";
char buffer[1024] = {0};
// 初始化 Winsock
if (WSAStartup(MAKEWORD(2,2), &wsa) != 0) {
printf("WSAStartup failed. Error Code : %d", WSAGetLastError());
return 1;
}
// 创建 socket
if ((sock = socket(AF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET) {
printf("socket creation failed. Error Code : %d", WSAGetLastError());
WSACleanup();
return 1;
}
// 指定服务器地址和端口号
memset(&serv_addr, '0', sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(PORT);
if (inet_pton(AF_INET, "127.0.0.1", &serv_addr.sin_addr) <= 0) {
printf("Invalid address/ Address not supported");
WSACleanup();
return 1;
}
// 连接服务器
if (connect(sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) {
printf("connection failed");
WSACleanup();
return 1;
}
// 向服务器发送数据
send(sock, hello, strlen(hello), 0);
printf("Hello message sent\n");
// 从服务器读取数据
recv(sock, buffer, 1024, 0);
printf("%s\n", buffer);
// 关闭 socket
closesocket(sock);
// 清理 Winsock
WSACleanup();
return 0;
}
```
这个客户端程序首先初始化 Winsock,然后创建一个 socket,指定服务器地址和端口号,并连接到服务器。一旦连接成功,它就会向服务器发送数据,并从服务器读取数据。这只是一个简单的示例,你可以根据自己的需求来修改和扩展它。
阅读全文