private void RecieveData(IAsyncResult iar) { try { ep = ipEndPoint; kvPair = (KeyValuePair <Socket, byte[]>)iar.AsyncState; int recv = kvPair.Key.EndReceiveFrom(iar, ref ep); if (recv > 0) { string preamble = Encoding.Default.GetString(kvPair.Value, 0, 2); if (preamble == "AA") { Msg = TextMessage.DecodeMessage(kvPair.Value); if (TextMessageRecieved != null) { TextMessageRecieved(new MessageRecievedEventArgs(Msg)); } } else if (preamble == "BB") { FileMessage msg = FileMessage.DecodeMessage(kvPair.Value); if (FileMessageRecieved != null) { FileMessageRecieved(new FileMessageRecievedEventArgs(msg)); } } } Listen(); } catch (Exception ex) { } }