cirat: OnSocketReceiveCompletion, split into multiple functions.