从android(模拟器)广播的Udp,在C#中接收

时间:2014-04-08 07:31:47

标签: c# android udp emulation broadcast

我有一点问题 - 无法从Android应用程序接收数据。 我在android https://code.google.com/p/boxeeremote/source/browse/trunk/Boxee+Remote/src/com/andrewchatham/Discoverer.java?spec=svn28&r=28中使用此代码 这个代码在C#app

public void ProcessResponses()
        {
            while (true)
            {
                int port = 2562;
                UdpClient UDP_packet = new UdpClient(port);
                UDP_packet.EnableBroadcast = true;
                IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0);
                IPAddress from_addr = null;
                Boolean gogo = false;
                while (!gogo)
                {
                    Byte[] receiveBytes = UDP_packet.Receive(ref RemoteIpEndPoint);
                    string returnData = Encoding.UTF8.GetString(receiveBytes);

                    Console.WriteLine(returnData);

                    from_addr = RemoteIpEndPoint.Address;
                }
                //send UDP packet
                IPEndPoint ipEndPoint = new IPEndPoint(from_addr, port);
                Byte[] sendBytes = Encoding.UTF8.GetBytes("94dbF5");
                UDP_packet.Send(sendBytes, sendBytes.Length, ipEndPoint);
                UDP_packet.Close();

                Thread.Sleep(500);
            }
        }

        public void Run()
        {
            Thread t = new Thread(ProcessResponses);
            t.IsBackground = true;
            t.Start();
        }

数据不会出现在C#app中。 Wireshark无法看到来自android的广播数据。 我正在使用eclipse与模拟器。

1 个答案:

答案 0 :(得分:0)

在您的代码中,名为gogo的值总是为false - 您有无限循环,因此不会执行发送UDP数据包的更多代码。

  Boolean gogo = false;
  while (!gogo){