C语言 UDP 客户端代码示例 - 轻松连接服务器
C语言 UDP 客户端代码示例
以下是一个简单的 UDP 客户端代码示例:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#define MAX_BUFFER_SIZE 1024
#define SERVER_IP '127.0.0.1'
#define SERVER_PORT 8888
int main() {
int sockfd;
struct sockaddr_in server_addr;
socklen_t addr_len = sizeof(server_addr);
char buffer[MAX_BUFFER_SIZE];
// 创建 UDP 套接字
if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
perror('socket creation failed');
exit(EXIT_FAILURE);
}
memset(&server_addr, 0, addr_len);
// 设置服务器地址
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(SERVER_PORT);
if (inet_pton(AF_INET, SERVER_IP, &(server_addr.sin_addr)) <= 0) {
perror('inet_pton failed');
exit(EXIT_FAILURE);
}
while (1) {
printf('Enter message: ');
fgets(buffer, MAX_BUFFER_SIZE, stdin);
// 发送消息到服务器
if (sendto(sockfd, buffer, strlen(buffer), 0, (struct sockaddr*)&server_addr, addr_len) == -1) {
perror('sendto failed');
exit(EXIT_FAILURE);
}
// 接收服务器的响应
memset(buffer, 0, MAX_BUFFER_SIZE);
if (recvfrom(sockfd, buffer, MAX_BUFFER_SIZE, 0, (struct sockaddr*)&server_addr, &addr_len) == -1) {
perror('recvfrom failed');
exit(EXIT_FAILURE);
}
printf('Server response: %s
', buffer);
}
// 关闭套接字
close(sockfd);
return 0;
}
这个 UDP 客户端示例代码会连接到指定的服务器 IP 和端口,并通过用户输入的消息发送给服务器。然后,它会等待服务器的响应并打印出来。循环会一直执行,直到用户终止程序。
原文地址: http://www.cveoy.top/t/topic/mLJZ 著作权归作者所有。请勿转载和采集!