【问题标题】:Windows Phone 8.1 UDP Multicast clientWindows Phone 8.1 UDP 多播客户端
【发布时间】:2015-05-05 21:25:54
【问题描述】:

尝试 Windows Phone 8.1 的应用程序并想知道如何使用 DatagramSocket 将数据发送到多播地址。如果我尝试将 ConnectAsync(HostName host) 与一些多播地址一起使用,即。 239.0.0.1,我收到一条消息“ConnectAcync() 不支持多播地址”。 如何连接到多播地址以及如何向其发送数据?

【问题讨论】:

    标签: c# sockets udp windows-phone-8.1 multicast


    【解决方案1】:

    你必须使用DatagramSocket.JoinMulticastGroup(),看这里:https://msdn.microsoft.com/en-us/library/windows/apps/windows.networking.sockets.datagramsocket.joinmulticastgroup.aspx

    更新:

    仅发送 UDP 消息尝试:

    IOutputStream outputStream = await datagramSocket.GetOutputStreamAsync(
        hostName,
        serviceName);
    IBuffer buffer = Encoding.UTF8.GetBytes("hello").AsBuffer();
    uint bytesWritten = await outputStream.WriteAsync(buffer);
    

    【讨论】:

    • 我试试这个代码:_mcastAddr = new HostName("239.0.0.1"); _sock = new DatagramSocket(); try { _sock.JoinMulticastGroup(_mcastAddr); } catch { MessageDialog errorMsg = new MessageDialog("errorr"); await errorMsg.ShowAsync(); } 我落入了 catch 部分。我做错了什么?
    • 错误是什么?无效的主机名是 Windows 8.1 中的常见错误。尝试选择网络接口。
    • 据我了解,JoinMulticastGroup() 不会像 ConnectAsync() 那样返回任何结果。因此,如果有办法找出发生的错误,我该如何解决?
    • 如果您进入catch 块,请检查Exception.HResult 值或Exception.Message
    • 报错:“在加入多播组之前绑定套接字”,如果我只想向多播组发送数据而不是接收数据,是否真的需要绑定套接字?
    猜你喜欢
    • 2014-07-15
    • 1970-01-01
    • 2014-06-23
    • 2014-11-04
    • 2012-11-11
    • 1970-01-01
    • 2013-01-18
    • 1970-01-01
    • 2016-08-31
    相关资源
    最近更新 更多