用C语言编写一段代码实现windows系统的Socket编程
时间: 2024-03-17 17:40:24 浏览: 71
用C语言实现socket通信
以下是一个简单的Windows系统下的Socket编程示例代码,可以用于建立TCP连接并发送数据:
```c
#include <stdio.h>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib") // 链接ws2_32.lib库文件
int main()
{
WSADATA wsaData;
SOCKET sock;
SOCKADDR_IN addr;
char buffer[1024];
int ret;
// 初始化WinSock库
if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0)
{
printf("WSAStartup failed!\n");
return 1;
}
// 创建Socket
sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (sock == INVALID_SOCKET)
{
printf("socket failed!\n");
WSACleanup();
return 1;
}
// 设置Socket地址信息
addr.sin_family = AF_INET;
addr.sin_port = htons(12345);
addr.sin_addr.s_addr = inet_addr("127.0.0.1");
// 连接到服务器
if (connect(sock, (SOCKADDR*)&addr, sizeof(addr)) == SOCKET_ERROR)
{
printf("connect failed!\n");
closesocket(sock);
WSACleanup();
return 1;
}
// 发送数据
sprintf(buffer, "Hello, server!");
ret = send(sock, buffer, strlen(buffer), 0);
if (ret == SOCKET_ERROR)
{
printf("send failed!\n");
closesocket(sock);
WSACleanup();
return 1;
}
// 关闭Socket
closesocket(sock);
// 释放WinSock库资源
WSACleanup();
return 0;
}
```
需要注意的是,Windows下的Socket编程需要先调用WSAStartup()函数初始化WinSock库,使用完后需要调用WSACleanup()函数释放资源。同时,Windows下的Socket API函数名前需要加上"WSA"前缀。
阅读全文