def ServerShakeHandWrap(_socket, callback): c_addr, c_port = _socket.getpeername() LOG.info('Connected from [%s:%d], shaking hand...', c_addr, c_port) if Protocol.ServerShakeHand(_socket): LOG.info('Connected success!') callback(_socket) else: LOG.info('Connected failed!') try: _socket.shutdown(socket.SHUT_RDWR) _socket.close() except socket.error: pass callback(None)