【问题标题】:c# - multicast packets not being sent when offlinec# - 离线时不发送多播数据包
【发布时间】:2016-04-14 00:04:06
【问题描述】:

大家好

我正在测试此代码以供离线 LAN 使用,但如果发送方离线,则不会发送多播数据包(我的结论我对此表示怀疑)。

为了发现数据包,我使用了

Wireshark

有一个

“QUIC”协议过滤器

问题:

当我在线时(不管是哪个连接,只要我能上网),我的多播数据包就会被发送出去,

但是,当我断开互联网时,没有数据包被发送,当我连接到互联网时,数据包被发送。

因此,

  • 互联网连接 -> 数据包已发送,
  • 没有互联网连接 -> 没有发送数据包

更新

附注- 此代码应通过所有接口发送多播数据包

IPAddress_MultiIP = IPAddress.Parse("224.0.0.3");

   Socket _listener_socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            foreach (IPAddress localIP in Dns.GetHostAddresses(Dns.GetHostName()).Where(i => i.AddressFamily == AddressFamily.InterNetwork))
            {
                //handle image and files                
                _listener_socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(_MultiIP/*, localIP*/));
                _listener_socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastTimeToLive, 1);
                _listener_socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
                _listener_socket.MulticastLoopback = true;
                _listener_socket.Connect(new IPEndPoint(_MultiIP, _PORT));
                //send data to multicast group
                string message_to_send = _IPADDRESS.ToString() + "~m~" + _MESSAGE + "\n";
                byte[] bytes = new byte[message_to_send.Length * sizeof(char)];
                System.Buffer.BlockCopy(message_to_send.ToCharArray(), 0, bytes, 0, bytes.Length);
                _listener_socket.Send(bytes, bytes.Length, SocketFlags.None);
            }
            _listener_socket.Close();

【问题讨论】:

    标签: c# sockets networking network-programming


    【解决方案1】:

    不管怎样,系统重启似乎解决了这个问题???

    我一开始不知道是什么原因造成的。

    如果您遇到此问题,请尝试重置适配器,否则重新启动并报告。

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-15
      • 1970-01-01
      • 1970-01-01
      • 2015-12-03
      • 2020-04-04
      • 2012-01-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多