Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# UDP广播在android手机热点C上不起作用#_C#_Android_Sockets_Xamarin.android - Fatal编程技术网

C# UDP广播在android手机热点C上不起作用#

C# UDP广播在android手机热点C上不起作用#,c#,android,sockets,xamarin.android,C#,Android,Sockets,Xamarin.android,我正在尝试在xamarin android中将udp包从一部手机广播到另一部手机 我在发件人上有此代码: Socket brd = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); brd.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1)

我正在尝试在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路由器网络上有两台设备时,这项功能可以正常工作,但当我在一台设备上使用hotspot时,另一台设备不会收到任何信息

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


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

你没有做错什么,但通常,手机会将自己与自己的热点网络隔离开来。它的行为可能看起来类似于路由器,但实际上它不是路由器,它也不会将自己作为自己网络的客户机(就像路由器那样)。这是为了防止潜在未知客户端对设备的攻击企图。

尝试获取所有网络接口并在每个网络接口上广播separately@woelliJ它有帮助,虽然我发现了另一个问题:))热点和个人电脑的ip范围有时不一样,但广播确实解决了我最近的问题。我刚刚意识到这是一个非常古老的问题。。。哦,好吧,我希望这能帮助一些人。