':param address: Address on which server must be started.
:param port: Port of server.
:param tmpdir: Dir where pid file is saved.'

def __init__(self, address='', port=_DEFAULT_PORT, tmpdir=None):

    if tmpdir:
        self.tmpdir = TempDir(tmpdir)
    else:
        self.tmpdir = autotemp.tempdir(unique_id='', prefix=('SyncListenServer_%d' % port))
    self.sessions = {}
    self.exit_event = threading.Event()
    self.server_pid = parallel.fork_start(self.tmpdir.name, (lambda : self._start_server(address, port)))
