private void listenBroadcast()
 {
     Console.WriteLine("listen broadcast...");
     Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
     IPEndPoint endPoint = new IPEndPoint(IPAddress.Any, Setting.Port);
     socket.Bind(endPoint);
     byte[] buffer = new byte[VERIFY_KEY_BUFFER_SIZE];
     while (true)
     {
         int res = 0;
         try
         {
             res = socket.ReceiveFrom(buffer, ref mRemote);
             String msg = Encoding.Default.GetString(buffer, 0, res);
             Log.v("msg:" + msg);
             BroadcastMsg broadcastMsg = new BroadcastMsg(msg);
             if (Verify.verifyBroadcastMsg(broadcastMsg))
             {
                 addToPadList(broadcastMsg, ((IPEndPoint)mRemote).Address);
             }
         }
         catch (Exception e)
         {
             Console.WriteLine("illegal client request! from " + mRemote.ToString());
         }
     }
 }
Ejemplo n.º 2
0
 public static Boolean verifyBroadcastMsg(BroadcastMsg msg)
 {
     if (msg.Secret == null)
         return false;
     if (msg.Timestamp == null)
         return false;
     if (!Md5.Encrypt(msg.Timestamp + Setting.BroadcastSecretKey).Equals(msg.Secret))
         return false;
     return true;
 }
 private PadInfo makePadInfo(BroadcastMsg msg, IPAddress address)
 {
     PadInfo info = new PadInfo(msg.DeviceId, msg.DeviceName, address, msg.Port);
     return info;
 }
 private void addToPadList(BroadcastMsg msg, IPAddress address)
 {
     PadInfo info = makePadInfo(msg, address);
     mPadContainer.addPad(info);
 }