当前位置:网站首页 > 编程语言 > 正文

udp广播和组播区别(udp和udp组播)



一、UDP

  UDP:是一个支持无连接的传输协议,全称是用户数据包协议(User Datagram Protocol)。UDP协议无需像TCP一样要建立连接后才能发送封装的IP数据报,也是因此UDP相较于TCP效率更高一些,但是由于没有建立连接,UDP只管发送数据,不管数据是否被接收,所以UDP传输数据是不安全的,容易丢包。

  通信流程:

  服务端

    1、创建通信用套接字:socket(AF_INET, SOCK_DGRAM, 0); 和TCP不同之处在于第二个参数改为SOCK_DGRAM。

    2、绑定套接字:bind(...);

    3、通信:接收数据,recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen);。发送数据,sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, const socklen_t *addrlen); 第五个参数都是另一端的信息,src_addr是传出参数。

  客户端同服务端。

二、广播

  广播:在IP子网内广播数据包,所有在子网内部的主机都将收到这些数据包。广播的使用范围仅在本地子网中,通过路由器控制广播的传输。广播地址:xxx.xxx.xxx.255。

  通信流程:

    1、创建并绑定套接字,同UDP。

    2、初始化客户端信息,主要是设置客户端ip为广播地址。

    3、开放服务器的广播权限:int flag = 1; setsockopt(fd, SOL_SOCKET, SO_BROADCAST, &flag, sizeof(flag));

    4、给客户端(子网内的主机)发送数据。

  客户端同UDP,不能向服务器发送数据。

三、组播

  组播:在发送者和每一接收者之间实现点对多点网络连接。如果一台发送者同时给多个接收者传输相同的数据,也只需复制一份相同的数据包。它提高了数据传送效率,减少了骨干网络出现拥塞的可能性。组播不同于广播的地方在于其不局限于局域网,而且其效率比广播更高。

  组播地址:224.0.0.0~224.0.0.255,预留组播地址(永久组地址),224.0.0.0保留不做分配,其它地址供路由器协议使用。224.0.1.0~224.0.1.255,公用组播地址,可以用于Internet,需要申请。224.0.2.0~238.255.255.255,用户可用组播地址(临时组地址),全网有效。239.0.0.0~239.255.255.255,本地管理组播地址, 仅在特定的本地范围内有效。

  通信流程:

    1、创建并绑定套接字,同UDP。

    2、初始化客户端地址信息,设置组播地址和客户端要绑定的端口。

    3、开放组播权限

    客户端,绑定端口要与服务端设置的相一致

    客户端加入到组播地址

到此这篇udp广播和组播区别(udp和udp组播)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • ddp贸易术语买卖双方义务(ddp是卖方承担义务最多的贸易术语)2025-05-23 13:54:10
  • 字体图标如何使用(字体图标如何使用图片)2025-05-23 13:54:10
  • 颜色代码查询地址(颜色代码在线查询)2025-05-23 13:54:10
  • 网页传输协议是(传输协议http)2025-05-23 13:54:10
  • 接口403错误是什么(接口403是什么意思)2025-05-23 13:54:10
  • at24c02擦写次数(w25q128擦写次数)2025-05-23 13:54:10
  • 游戏的分类有哪些方面(游戏的分类有哪些方面的问题)2025-05-23 13:54:10
  • 电脑怎么安扬声器(电脑如何装扬声器)2025-05-23 13:54:10
  • 星露谷黄金时钟代码(星露谷黄金时钟值不值得买)2025-05-23 13:54:10
  • bullet point论文(bullet point论文中)2025-05-23 13:54:10
  • 全屏图片