[Python] python Gevent multiprocessing server →→→→→进入此内容的聊天室

来自 , 2020-06-28, 写在 Python, 查看 162 次.
URL http://www.code666.cn/view/e80ba3de
  1. import sys
  2. from gevent import server
  3. from gevent.baseserver import _tcp_listener
  4. from gevent.monkey import patch_all; patch_all()
  5. from multiprocessing import Process, current_process, cpu_count
  6.  
  7.  
  8. def note(format, *args):
  9.     sys.stderr.write('[%s]\t%s\n' % (current_process().name, format%args))
  10.  
  11. def echo(socket, address):
  12.     print 'New connection from %s:%s' % address
  13.     fileobj = socket.makefile()
  14.     fileobj.write('Welcome to the echo server! Type quit to exit.\r\n')
  15.     fileobj.write('In %s\r\n' % current_process().name)
  16.     fileobj.flush()
  17.     while True:
  18.         line = fileobj.readline()
  19.         if not line:
  20.             print "client disconnected"
  21.             break
  22.         if line.strip().lower() == 'quit':
  23.             print "client quit"
  24.             break
  25.         fileobj.write(current_process().name + '\t' + line)
  26.         fileobj.flush()
  27.         print "echoed", repr(line)
  28.  
  29. listener = _tcp_listener(('127.0.0.1', 8001))
  30.  
  31. def serve_forever(listener):
  32.     note('starting server')
  33.     server.StreamServer(listener, echo).serve_forever()
  34.    
  35. number_of_processes = 5
  36. print 'Starting %s processes' % number_of_processes
  37. for i in range(number_of_processes):
  38.     Process(target=serve_forever, args=(listener,)).start()
  39.  
  40. serve_forever(listener)
  41. #//python/5229

回复 "python Gevent multiprocessing server"

这儿你可以回复上面这条便签

captcha