多线程处理的方式使我能够在Python中接受多个客户机
我需要编写一个能够用Python处理多个客户端的服务器,到目前为止,我能够处理来自客户端的一个连接,但我真的不知道如何扩展我的程序来处理多个客户端。我试着看着Twisted,但无法真正理解它 有什么建议或示例代码可以帮助我理解如何处理多个客户端?理想情况下,我应该能够将多个客户端连接到服务器,并且基于它们连接后传递的输入,我应该能够通过解析它们的输入来完成各种有趣的事情,等等 我非常期待您的回复,并提前感谢您抽出时间。我是个长期潜伏者 附言 我已经看过了Python的大多数其他多线程示例,它们并没有真正起到帮助作用多线程处理的方式使我能够在Python中接受多个客户机,python,multithreading,client-side-validation,Python,Multithreading,Client Side Validation,我需要编写一个能够用Python处理多个客户端的服务器,到目前为止,我能够处理来自客户端的一个连接,但我真的不知道如何扩展我的程序来处理多个客户端。我试着看着Twisted,但无法真正理解它 有什么建议或示例代码可以帮助我理解如何处理多个客户端?理想情况下,我应该能够将多个客户端连接到服务器,并且基于它们连接后传递的输入,我应该能够通过解析它们的输入来完成各种有趣的事情,等等 我非常期待您的回复,并提前感谢您抽出时间。我是个长期潜伏者 附言 我已经看过了Python的大多数其他多线程示例,它们并
谢谢。您可以看看python模块 如果您使用Google搜索网络编程,特别是Python网络编程和客户机-服务器编程,您将找到许多有用的资源来解释这些内容。我推荐
此外,我建议在掌握基本知识之前不要使用异步网络编程。将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()
我在谷歌上搜索了一整天,我还没有找到一个全面的例子来阐述多个客户端和一台服务器如果你发布你已经实现的单线程代码,你会得到更好的回答。也许…坚持使用twisted?嗨,FogleBird,所以在这个待办事项区域,每次客户端尝试运行它时,那会跑吗?我如何跟踪我的客户?假设我连接了10个客户机,我想切换前两个,我该怎么做呢?谢谢你的帮助!以什么方式切换?你能用一些伪代码举个例子吗?最好让客户端发送一些简短的命令,让服务器响应,以区分它们。