Put some more work into the various socket types