利用UDP编写服务器广播多个客户端程序。
1、服务器的搭建
(1)、创建UDP端口:
int sockfd = socket(AF_INET,SOCK_DGRAM,0);
len = sizeof(cetaddr);
addr.sin_family = AF_INET;
addr.sin_port = htons(6666);
addr.sin_addr.s_addr = inet_addr("0");
ret = bind(sockfd,(struct sockaddr *)&addr,sizeof(addr));
if(-1 == ret)
{
perror("bind");
exit(-1);
}
(2)、记录连接服务器的客户端及其相关信息,并转发消息给除发送者以外的全部客户端
ret = recvfrom(sockfd,buf,sizeof(buf),0,(struct sockaddr *)&cetaddr,&len);
for(i = 0;ntohs(usr[i].sin_port) != 0;i++)
{
if(usr[i].sin_port == cetaddr.sin_port)
{
flag = 1;
continue;