首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >接收广播消息

接收广播消息
EN

Stack Overflow用户
提问于 2010-03-28 01:25:23
回答 2查看 3.9K关注 0票数 0

我正试图在我那端有BRI接口的综合业务数字网网络中用C#码接收广播信息。

我使用Comm View tool在某些端口上看到发送到广播ip地址(239.255.255.255)的数据包。

但当我尝试侦听此IP地址时,它显示该地址不在有效的上下文中。

但是当我在端口上向255.255.255.255发送广播消息时,我可以使用以下代码接收这些消息。

此ip地址239.255.255.255有什么问题?

代码语言:javascript
复制
The code I use to listen to broadcast messages is..

UdpClient udp = new UdpClient();
IPEndPoint receiveEndPoint = new IPEndPoint(IPAddress.Any, 8013);
// If I use IPAddress.Parse("239.255.255.255") to listen to,
// it says "the address is not in a valid // context."
udp.Client.Bind(receiveEndPoint);
udp.BeginReceive(_Callback, udp);

static private void _Callback(IAsyncResult iar)
{
        try
        {
            UdpClient client = (UdpClient)iar.AsyncState;

            client.BeginReceive(_Callback, client);

            IPEndPoint ipRemote = new IPEndPoint(IPAddress.Any, 8013);

            byte[] rgb = client.EndReceive(iar, ref ipRemote);

            Console.WriteLine("Received {0} bytes: \"{1}\"",
            rgb.Length.ToString(), Encoding.UTF8.GetString(rgb));
        }
        catch (ObjectDisposedException)
        {
            Console.WriteLine("closing listening socket");
        }
        catch (Exception exc)
        {
            Console.WriteLine("Listening socket error: \"" +
            exc.Message + "\"");
        }
 }

有数据包发送到广播I地址(239.255.255.255),我可以在Commview工具中看到,但不能从代码中接收它们...

有谁能帮帮我吗?

先谢谢你,

普拉萨德·坎查拉。

EN

回答 2

Stack Overflow用户

发布于 2010-03-28 02:11:28

我没有做太多关于多播的工作,但我相信准备接收多播数据包是一个两步的过程。首先,绑定到本地IP地址,这就是您使用IPAddress.Any所做的事情。然后,您需要使用带有Socket.SetSocketOption方法的MulticastOption对象指定您希望加入的组播组。

MSDN Library有一个供您参考的example

票数 0
EN

Stack Overflow用户

发布于 2010-03-28 02:15:54

这听起来像是假设该地址是定向广播(子网本地广播),而它实际上在为多播保留的IP地址范围内,这完全是另一回事。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2530209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档