我想要一个简单的函数来设置UDP连接的服务器端,只需要使用该端口并返回套接字描述符。这可能吗?还是struct sockaddr
变量传入bind
需要继续?这是我想要的功能:结构sockaddr可以通过绑定是一个局部变量吗?
int UDP_Init(int port)
{
int sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
if (sockfd < 0)
{
perror("ERROR opening UDP socket");
return -1;
}
struct sockaddr_in server_addr;
bzero((char*)&server_addr, sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(port);
server_addr.sin_addr.s_addr = htonl(INADDR_ANY);
if (bind(sockfd, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0)
{
perror("ERROR binding UDP socket");
return -1;
}
return sockfd;
}
这个工作吗?或者,我必须保持sockaddr_in
结构链接到套接字描述符?