Android通过LAN从C#桌面应用程序接收UDP广播?
我正在尝试在PC上为使用相同Wi-Fi网络的许多Android设备创建一个服务器应用程序。 设备将通过接收来自它的UDP广播找到服务器的IP,其中包含服务器IP数据。 我开始在Java中用C#和udp接收器创建一个示例udp广播器,但我从未设法在android端获取数据包。 这是代码:
C#:
UdpClient listener = new UdpClient(listenPort); IPEndPoint groupEP = new IPEndPoint(IPAddress.Broadcast, listenPort); listener.Connect(groupEP); listener.EnableBroadcast = true; byte[] data = new byte[1024]; try { while (!done) { Console.WriteLine("broadcast"); Thread.Sleep(400); listener.Send(data,2); }
Android代码:
DatagramSocket socket; try { socket = new DatagramSocket(11000); socket.connect(getBroadcastAddress(), 11000); socket.setBroadcast(true); byte[] buf = new byte[4]; DatagramPacket packet = new DatagramPacket(buf, buf.length); socket.receive(packet);
在清单中正确设置了Internet权限。 仍然无法接收数据包。
建议:
-
确保您没有阻止您的任何防火墙(软件或硬件)
-
考虑使用Wireshark:
-
看看这个例子: