多播的步驟

2021-05-24 11:13:18 字數 843 閱讀 4495

1.建立socket

socketfd = socket(af_inet, sock_dgram, 0);

if (-1 == socketfd)

2.設定socket可重用並繫結

loop = 1;

if (setsockopt(socketfd, sol_socket, so_reuseaddr, &loop, sizeof(loop)) < 0)

if (bind(socketfd, (struct sockaddr *)&sin, sizeof(sin)) < 0)

3.設定多播位址並加入多播組

struct ip_mreq command;

loop = 1;

if (setsockopt(socketfd, ipproto_ip, ip_multicast_loop, &loop, sizeof(loop)) < 0)

command.imr_multiaddr.s_addr = inet_addr("224.0.0.1");

command.imr_inte***ce.s_addr = htonl(inaddr_any);

if (command.imr_multiaddr.s_addr == -1)

if (setsockopt(socketfd, ipproto_ip, ip_add_membership, &command, sizeof(command)) < 0)

4.退出多播組

if (setsockopt(socketfd, ipproto_ip, ip_drop_membership, &command, sizeof(command)) < 0)

close(socketfd);

多播和組播

1.多播 多播 也可以稱為 組播 這樣的多播應用tcp 2.廣播 廣播 在網路中的應用較多,如客戶機通過dhcp自動獲得ip位址的過程就是通過廣播來實現的。但是同單播和多播相比,廣播幾乎占用了子網內網路的所有頻寬。拿開會打乙個比方吧,在會場上只能有乙個人發言,想象一下如果所有的人同時都用麥克風發言,...

winsock 多播(組播)

組播,就是有一組主機,乙個主機傳送資料,組內其他的主機都會收到。首先,根據上圖講述組播的原理 我們把路由器192.168.0.1埠也看做一台主機,這樣就有四台主機連線到交換機上。根據乙太網的原理,交換機不知道ip位址的存在,只知道mac位址。交換機會根據資料中的目的mac位址把資料報 到某個埠上,保...

UDP的組播與多播

在前面已經記錄過udp的單播模式,即客戶端只能與服務端單獨對接。接下來介紹udp的另外兩種通訊方式 udpsocket newqudpsocket this udpsocket bind qhostaddress 192.168.1.100 45454 qbytearray datagram mul...