abstract server socket