private void OnReceiveAsyncCompleted(object sender, SocketAsyncEventArgs e) { // no other code should go here. All handling is the same or async and sync completion ProcessReceive(e); }