Example #1
0
 public void AddMessage(Message message)
 {
     UIThreadDispatcher.DispatchToUIThread(() =>
     {
         m_Messages.Add(message);
         if (MessageAdded != null)
         {
             MessageAdded(this, new MessageEventArgs(message));
         }
     });
 }
Example #2
0
 private void LookForDatagram(Socket socket)
 {
     try
     {
         if (socket.Available > 0)
         {
             byte[] bytes        = new byte[600];
             int    count        = socket.Receive(bytes);
             String receivedData = System.Text.Encoding.UTF8.GetString(bytes, 0, count);
             Messages.AddMessage(MessageType.Debug, StringResources.UDPReceived + receivedData);
             ServerInfo server = GetServerInfo(receivedData, "|");
             if (server == null)
             {
                 Messages.AddMessage(MessageType.Debug, StringResources.WrongPlayerIgnored);
             }
             else if (!m_FoundServers.Contains(server.Name))
             {
                 m_FoundServers.Add(server.Name);
                 UIThreadDispatcher.DispatchToUIThread(() =>
                 {
                     FireServerFound(server);
                 });
             }
         }
         else
         {
             System.Threading.Thread.Sleep(50);
         }
     }
     catch (SocketException e)
     {
         if (e.SocketErrorCode != SocketError.TimedOut)
         {
             throw;
         }
     }
     catch (System.Text.DecoderFallbackException e)
     {
         Messages.AddMessage(MessageType.Warning, e.Message);
     }
 }