This allows us to pass in an alternate implementation for Recv, if we want to temporarily use a different data source.