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:

http://www.wireshark.org/
>看看这个例子:

http://code.google.com/p/boxeeremote/wiki/AndroidUDP

点赞