推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
ivito
V2EX  ›  Python

Python 的用多进程处理客户端请求

  •  
  •   ivito ·
    fireboyvt · Aug 26, 2015 · 3039 views
    This topic created in 3945 days ago, the information mentioned may be changed or developed.
    使用 Python 中 SocketServer 模块中的 ForkingMixIn 处理客户端请求,实现给客户端发送 PID 和时间功能
    class ForkingServerHandler (SocketServer.BaseRequestHandler ):

    def handle (self ):
    data = self.request.recv (1024 )
    current_pid = os.getpid ()
    response = 'server pid: %s server time %s:' % (current_pid, server_time ())
    print response
    self.request.send (response )
    return


    class ForkingServer (SocketServer.TCPServer, SocketServer.ForkingMixIn,):
    """time server , return the server time to client"""
    pass
    但发现在本地开启了好几个客户端后服务端仍然只使用一个进程处理请求,为何?
    3 replies    2015-08-28 15:00:07 +08:00
    paw
        1
    paw  
       Aug 26, 2015
    class ForkingServer (SocketServer.TCPServer, SocketServer.ForkingMixIn,):
    改成
    class ForkingServer (SocketServer.ForkingMixIn, SocketServer.TCPServer ):

    继承循序的问题
    paw
        2
    paw  
       Aug 26, 2015
    PS :不推荐用自带库的这个 forkinng ,还不如下面来的方便
    s = SocketServer.TCPServer (('', PORT ),HandlerClass )
    for x in xrange (fork_process ):
    pos = x
    pid = os.fork ()
    if pid == 0 :
    break

    s.serve_forever ()
    PPS:学 python 网络,先把标准库的 SocketServer.py 读了,你的问题就在这文件的 614 行( python 2.7.9 )
    ivito
        3
    ivito  
    OP
       Aug 28, 2015
    @paw 非常感谢,解释完全正确,是继承顺序的问题。 SocketServer.py 写的确实很赞,几百行实现了一个服务器框架。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5697 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 01:50 · PVG 09:50 · LAX 18:50 · JFK 21:50
    ♥ Do have faith in what you're doing.