gpt4 book ai didi

c# - UDP 广播不适用于 Android 手机热点 C#

转载 作者:行者123 更新时间:2023-12-03 11:50:12 25 4
gpt4 key购买 nike

我正在尝试在 xamarin android 中将 udp 包从一部手机广播到另一部手机我在发件人上有这个代码:

                Socket brd = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
brd.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);
IPEndPoint ipe = new IPEndPoint(IPAddress.Broadcast, 9050);
string host = Dns.GetHostName();
byte[] data = Encoding.Unicode.GetBytes(host);
brd.SendTo(data, ipe);

我在接收设备上有这个代码:

            Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
IPEndPoint iep = new IPEndPoint(IPAddress.Any, 9050);
sock.Bind(iep);
EndPoint ep = iep;
byte[] data = new byte[1024];
int recv = sock.ReceiveFrom(data, ref ep);
string stringData = Encoding.Unicode.GetString(data, 0, recv);

当我的 wifi 路由器网络上有两台设备时,这工作正常,但是当我在一台设备上使用热点时,另一台设备收不到任何东西!

我在 C# 控制台上尝试了相同的代码,并将我的电脑连接到调制解调器,数据包接收正常,但是当电脑连接到手机热点时,广播没有再次收到,就像什么都没发生一样!

我做错了什么?我有更好的方法吗?

最佳答案

您没有做错任何事,但通常情况下,手机会将自己与自己的热点网络隔离开来。它的行为可能看起来与路由器的行为相似,但实际上并不是路由器,并且它不会将自己定位为自己网络的客户端(如路由器那样)。这是为了防止潜在未知客户端对设备的攻击尝试。

关于c# - UDP 广播不适用于 Android 手机热点 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44598989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com