第1关:UDP套接字创建与端口绑定
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
/************************
* port: 需要绑定的端口号
* 返回值: 调用成功返回0,否则返回-1
*************************/
int UDPSocket(unsigned short port)
{
int ret = -1;
/********** BEGIN **********/
int sockfd;
struct sockaddr_in server_addr;
// 创建UDP套接字
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
if (sockfd == -1)
{
printf("创建UDP套接字失败: %s\n", strerror(errno));
return -1;
}
// 初始化服务器地址结构体
memset(&server_addr, 0, sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = htonl(INADDR_ANY);
server_addr.sin_port = htons(port);
// 绑定端口
ret = bind(sockfd, (struct sockaddr *)&server_addr, sizeof(server_addr));
if (ret == -1)