广播,多播(一)(Broadcasting, Multicasting)

本文聚焦网络编程,介绍广播和多播可实现一对多消息接收。因TCP有连接,广播消息需用UDP,广播地址有特定组成。还阐述了C#中发送和接收广播消息的过程,包括调用函数、端口作用、IP显示等,也提及可用线程收发消息确认位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

前言

在网络编程中,通过广播和多播可以实现发送端发送一个数据包,有多个接收端接收的情况。

 

广播

由于Tcp是有连接的,所以不能用来发送广播消息。发送广播消息,必须用到UdpUdp可以不用建立连接而发送消息。广播消息的目的IP地址是一种特殊IP地址,称为广播地址。广播地址由IP地址网络前缀加上全1主机后缀组成,如:192.168.1.255192.169.1.0这个网络的广播地址;130.168.255.255130.168.0.0这个网络的广播地址。向全部为1IP地址(255.255.255.255)发送消息的话,那么理论上全世界所有的联网的计算机都能收得到了。但实际上不是这样的,一般路由器上设置抛弃这样的包,只在本地网内广播,所以效果和向本地网的广播地址发送消息是一样的。

 

C#中发送广播消息的过程如下,注意要调用SetSockOption函数,不然要抛出异常:

C#中接收广播消息的过程如下,没有什么特别的:

2 发送广播消息时指定的端口也是有作用的,接收端的Udp Socket如果Bind到此接口的话,就能够接收到消息。(如果不Bind的话,就能接收所有端口的消息??)

3 接收端接到的包中显示的远端IP地址是发送端的地址。就是说广播地址不会显示到一个包的源IP地址位置(LoopBack地址不会显示到包的目的IP地址位置)

4 可以用线程不停地发送和接收广播消息,确认两端的位置和证明自己的存在

 

上面的程序来自(C# Network Programming

转载于:https://www.cnblogs.com/xuhx/archive/2004/06/23/18150.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值