#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#define BUFLEN 255
#define GROUP_ADDR "229.0.0.211"
#define GROUP_PORT 12345
int main(int argc, char **argv)
{
struct sockaddr_in peeraddr;
int sockfd;
char recmsg[BUFLEN + 1];
unsigned int socklen;
struct ip_mreq mreq;
/* 创建 socket 用于UDP通讯 */
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
if (sockfd < 0) {
printf("socket creating err in udptalk\n");
exit(1);
}
mreq.imr_multiaddr.s_addr = inet_addr(GROUP_ADDR);
mreq.imr_interface.s_addr = htonl(INADDR_ANY);
/* 把本机加入组播地址,即本机网卡作为组播成员,只有加入组才能收到组播消息 */
if (setsockopt(sockfd, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq,
sizeof(struct ip_mreq)) == -1)
{
perror("setsockopt");
exit(-1);
}
C语言组播实现
最新推荐文章于 2024-08-21 23:45:27 发布