socket interface design