private void SendCallback(IAsyncResult ar) { Socket sender = (Socket)ar.AsyncState; int bytesSent = 0; try { bytesSent = sender.EndSend(ar); } catch (Exception e) { WriteLog(LogStrings.ExceptionWasThrown(e)); return; } WriteLog(LogStrings.BytesWereSuccessfulySent(bytesSent)); StateObject state = new StateObject(); state.workSocket = sender; WriteLog(LogStrings.WaitingToReceiveMessageFromServer()); sender.BeginReceive(state.buffer, 0, state.buffer.Length, 0, new AsyncCallback(ReceiveCallback), state); }