socket base class