网络编程:用UDP通信实现组播通信(多播)

用UDP通信实现组播通信(多播)组播通信特点:发送端创建的聊天组,你想加入就加入,不想加入就不接收(想加入才把数据发给组播地址)Ip地址分类A, B, C, D(组播地址)——224.0.0.0 — 239.255.255.255原理图:流程:组播发送端1, 创建UDP套接字socket(AF_INET, SOCK_DGRAM, 0)2, 发送数据给组播地址sendto(sockfd, 发送的数据data, 数据长度size, 0, 组播地址, 地址长度)组播接收端1, 创建UDP
摘要由CSDN通过智能技术生成

用UDP通信实现组播通信(多播)

组播通信特点:发送端创建的聊天组,你想加入就加入,不想加入就不接收(想加入才把数据发给组播地址)

Ip地址分类A, B, C, D(组播地址)
——224.0.0.0 — 239.255.255.255
在这里插入图片描述
原理图:
在这里插入图片描述
流程:
组播发送端
1, 创建UDP套接字socket(AF_INET, SOCK_DGRAM, 0)
2, 发送数据给组播地址sendto(sockfd, 发送的数据data, 数据长度size, 0, 组播地址, 地址长度)

组播接收端
1, 创建UDP套接字socket(AF_INET, SOCK_DGRAM, 0)
2, 绑定地址端口 bind
3, 加入到某个组播组(退出组播组) setsockopt

完整代码实现如下:

//发送端
#include <stdio.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <string.h>
#include <netinet/in.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <pthread.h>
#include <stdbool.h>
#include <sys/stat.h>
#include <fcntl.h>

int main(void)
{
   
	//1.创建套接字
	int sockfd = socket(AF_INET, SOCK_DGRAM, 0);
	if(sockfd < 0)
	{
   
		perror("socket fail");
		return -1;
	}

	//2.发送数据
	struct sockaddr_in destAddr
  • 1
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值