c#-脱机时未发送多播数据包
大家好 我正在为离线LAN使用测试这段代码,但如果发送方离线,则不会发送多播数据包(我的结论我对此表示怀疑) 为了发现数据包,我使用 钢丝鲨 带着 “QUIC”协议过滤器 问题: 当我在线时(不管是哪种连接,只要我可以访问互联网),我的多播数据包就会被发送 但是,当我断开与internet的连接时,没有数据包被发送,当我连接到internet时,数据包被发送 因此,c#-脱机时未发送多播数据包,c#,sockets,networking,network-programming,C#,Sockets,Networking,Network Programming,大家好 我正在为离线LAN使用测试这段代码,但如果发送方离线,则不会发送多播数据包(我的结论我对此表示怀疑) 为了发现数据包,我使用 钢丝鲨 带着 “QUIC”协议过滤器 问题: 当我在线时(不管是哪种连接,只要我可以访问互联网),我的多播数据包就会被发送 但是,当我断开与internet的连接时,没有数据包被发送,当我连接到internet时,数据包被发送 因此, 互联网连接->发送数据包 没有internet连接->没有发送数据包 已更新 p、 此代码应通过所有接口发送多播数据包 及 值
- 互联网连接->发送数据包
- 没有internet连接->没有发送数据包
值得一提的是,系统重启似乎解决了这个问题 我一开始不知道是什么原因造成的 如果出现此问题,请尝试重置适配器,否则重新启动并报告
希望这能有所帮助。无论如何,系统重启似乎可以解决这个问题 我一开始不知道是什么原因造成的 如果出现此问题,请尝试重置适配器,否则重新启动并报告 希望这有帮助
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();