void Priem(IAsyncResult iar) { IPEndPoint remoteIPEndPoint = null; byte[] bytes = udpClient.EndReceive(iar, ref remoteIPEndPoint); SpamLanguage verb = (SpamLanguage)bytes[0]; switch (verb) { case SpamLanguage.KnockKnock: if (DbAvailable) { string ipStr = remoteIPEndPoint.Address.ToString(); dbClient.AddRobot(ipStr); } break; default: Thread messageThread = new Thread(new ThreadStart(delegate() { MessageBox.Show("Incorrect command received"); })); messageThread.Start(); break; } udpClient.BeginReceive(Priem, iar); }