1

我希望编写一个可以在 Python 中处理多个客户端的服务器,到目前为止,我能够处理一个连接(来自客户端),但我真的不知道如何扩展我的程序来处理多个客户端。我试着看 Twisted,但无法真正理解它。

有什么建议或示例代码可以帮助我了解如何处理多个客户端?理想情况下,我应该能够将多个客户端连接到服务器,并且基于它们连接后传递的输入,我应该能够通过解析它们的输入等来做各种有趣的事情。

我真的很期待您的回复,并提前感谢您的时间。我是一个很长时间的潜伏者。

PS 我已经查看了大多数其他 Python 多线程示例,但它们并没有真正提供帮助。

谢谢。

4

2 回答 2

0

将 SocketServer 与 ThreadingMixIn 一起使用,以便在单独的线程上处理每个客户端连接。

这是您的起点。

import SocketServer

PORT = 5000

class Server(SocketServer.ThreadingMixIn, SocketServer.TCPServer):
    daemon_threads = True

class Handler(SocketServer.BaseRequestHandler):
    def handle(self):
        # TODO: handle this client
        # this sample acts as an echo server
        while True:
            data = self.request.recv(1024)
            if not data:
                break
            self.request.sendall(data)

if __name__ == '__main__':
    server = Server(('', PORT), Handler)
    server.serve_forever()
于 2012-10-29T23:35:56.877 回答
0

你可以看看 python 模块SocketServer

如果您使用 Google 搜索网络编程(尤其是 Python 网络编程)和客户端服务器编程,您会发现很多有用的资源可以解释事物。我推荐Beej 的网络编程指南

另外,我建议您远离异步网络编程,直到您掌握了基础知识。

于 2012-10-29T22:35:00.400 回答