SystemSocket support - alternative approach

Alternative pull request including refactor to DiscoveryClient so that it uses a factory method.
This class is never used.