相关疑难解决方法(0)

在python中使用SocketServer框架创建多线程服务器

这个问题解决了.工作代码也在下面的帖子中给出.

问题:我目前熟悉使用Python进行网络编程.我目前正在使用SocketServer框架.现在我的问题是如何创建可以使用SocketServer模块接受多个客户端的多线程服务器?我基本上试图使用这段代码

t = Thread(target=server.serve_forever())
t.start()
Run Code Online (Sandbox Code Playgroud)

目前在我的程序中,服务器只接受一个客户端.我使用netcat连接到服务器.第一个客户端连接到服务器没有任何问题.如果我尝试从第二个客户端连接到服务器,客户端只是等待连接.一旦断开第一个客户端,第二个客户端就会自动连接服务器.在我看来,多线程无法正常工作.我无法弄清楚我在哪里错过了什么.任何暗示都会很棒.我的代码如下:

#!/usr/bin/env python

import SocketServer
from threading import Thread


class service(SocketServer.BaseRequestHandler):
    def handle(self):
        data = 'dummy'
        print "Client connected with ", self.client_address
        while len(data):
            data = self.request.recv(1024)
            self.request.send(data)

        print "Client exited"
        self.request.close()



server = SocketServer.TCPServer(('',1520), service)
t = Thread(target=server.serve_forever())
t.start()
Run Code Online (Sandbox Code Playgroud)

谢谢

更新: 以下代码是解决方案:

#!/usr/bin/env python


import SocketServer
from threading import Thread

class service(SocketServer.BaseRequestHandler):
    def handle(self):
        data = 'dummy'
        print "Client connected with ", self.client_address
        while len(data):
            data = self.request.recv(1024)
            self.request.send(data)

        print "Client exited" …
Run Code Online (Sandbox Code Playgroud)

python sockets multithreading

13
推荐指数
1
解决办法
2万
查看次数

标签 统计

multithreading ×1

python ×1

sockets ×1