<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def _setup_ipc(self):
        '''
        Setup the listener ICP pusher.
        '''
        log.debug('Setting up the listener IPC pusher')
        self.ctx = zmq.Context()
        self.pub = self.ctx.socket(zmq.PUSH)
        self.pub.connect(LST_IPC_URL)
        log.debug('Setting HWM for the listener: %d', self.opts['hwm'])
        try:
            self.pub.setsockopt(zmq.HWM, self.opts['hwm'])
            # zmq 2
        except AttributeError:
            # zmq 3
            self.pub.setsockopt(zmq.SNDHWM, self.opts['hwm'])