用标准C语言在window环境下写基于tcp协议的socket通信的客户端代码
时间: 2024-01-22 07:20:00 浏览: 99
下面是一个简单的基于TCP协议的客户端代码,使用标准C语言在Windows环境下实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <winsock2.h>
#define PORT 8080
#define SERVER_IP "127.0.0.1"
int main()
{
WSADATA wsa;
SOCKET s;
struct sockaddr_in server;
char message[1000], server_reply[2000];
// 初始化Winsock
if (WSAStartup(MAKEWORD(2,2),&wsa) != 0)
{
printf("Failed. Error Code : %d",WSAGetLastError());
return 1;
}
// 创建Socket
if((s = socket(AF_INET , SOCK_STREAM , 0 )) == INVALID_SOCKET)
{
printf("Could not create socket : %d" , WSAGetLastError());
}
// 设置服务器地址和端口号
server.sin_addr.s_addr = inet_addr(SERVER_IP);
server.sin_family = AF_INET;
server.sin_port = htons(PORT);
// 连接服务器
if (connect(s , (struct sockaddr *)&server , sizeof(server)) < 0)
{
printf("connect error");
return 1;
}
printf("Connected to server\n");
// 发送数据
printf("Enter message : ");
fgets(message, 1000, stdin);
if( send(s , message , strlen(message) , 0) < 0)
{
printf("Send failed");
return 1;
}
// 接收服务器的回复
if(recv(s , server_reply , 2000 , 0) < 0)
{
puts("recv failed");
}
puts("Server reply :");
puts(server_reply);
// 关闭Socket
closesocket(s);
WSACleanup();
return 0;
}
```
在这个例子中,我们使用了Windows Socket API(也称为Winsock)来实现TCP Socket通信。这个程序通过指定服务器的IP地址和端口号来连接到服务器,并发送一条消息。服务器接收到这条消息后,会回复一条消息,客户端再将回复输出到屏幕上。最后,客户端关闭Socket并清理Winsock资源。
需要注意的是,这个代码只是一个简单的示例,没有考虑错误处理和异常情况。在实际应用中,你需要根据自己的需求进行修改和完善。
阅读全文