def run(self):
"""
Synchronously start the server in the current thread, blocking indefinitely.
"""
try:
try:
while self.socket.fileno() > 0:
r, w, x = select.select([self.socket], [], [], 1)
if r:
connection, address = self.socket.accept()
logging.info('sshim.Server accepted connection from %s:%d', *address)
#if connection.recv(1, socket.MSG_PEEK):
self.handler(self, (connection, address))
except (select.error, socket.error) as exception:
if hasattr(exception, 'errno'):
if exception.errno != errno.EBADF:
raise
else:
(code, message) = exception.args
if code != errno.EBADF:
raise
except:
self.exceptions.put_nowait(sys.exc_info())
raise
评论列表
文章目录