Python 如何在这里添加多线程?

Python 如何在这里添加多线程?,python,python-3.x,sockets,python-multithreading,Python,Python 3.x,Sockets,Python Multithreading,我试图在我的程序中处理多个客户机请求,所以从我的代码中可以在哪里设置多线程代码 根据我在下面发布的代码,如何初始化线程 class A(object): result = [] def __init__(self): config = configparser.ConfigParser()l config.read(r'setup.ini') config.sections() f = config['NETWORK

我试图在我的程序中处理多个客户机请求,所以从我的代码中可以在哪里设置多线程代码

根据我在下面发布的代码,如何初始化线程

class A(object):
    result = []
    def __init__(self):
        config = configparser.ConfigParser()l
        config.read(r'setup.ini')
        config.sections()
        f = config['NETWORK']
        self.port = int(f['PORT'])  # port
        self.host = str(f['HOST'])  # host
        self.buff_size = int(f['BUFF_SIZE'])
        self.client_string = ''
        self.s = socket.socket()

    def listenn(self):
        self.s.bind(('localhost', self.port))
        print("\nlistening...")
        self.s.listen(5)

    def handle_request(self):
        conn, address = self.s.accept()
        print("\n======after accepting request=====\n")
        conn.send(b'connected\n', self.buff_size)
        print(f"got connection from{address}") 
        self.client_string = conn.recv(self.buff_size)

class B(A):
    super().__init__()

main():
a= A()
a.listenn()
a.handle_request()
b=B()
.
.

它应该处理多个请求,并为创建的第一个请求执行功能,并且服务器应该处于活动状态


from socket import *
from threading import Thread

clients = []

def clientHandler(c, addr):
    global clients
    print(addr, "is Connected")
    try:
        while True:
            data = c.recv(1024)
            if not data:
                break
            for client in clients:
                if addr != client:
                    c.sendto(data, client)
    except:
        print("Error. Data not sent to all clients.")

HOST = '' #localhost
PORT = 8000

s = socket(AF_INET, SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(5)

print("Server is running on "+ str(PORT))

#Thread(target=clientHandler).start()
#Thread(target=clientHandler).start()
#Thread(target=clientHandler).start()
trds = []

for i in range(5):
    c, addr = s.accept()
    clients.append(addr)
    t = Thread(target=clientHandler, args = (c, addr))
    trds.append(t)
    t.start()

for t in trds:
    t.join()

s.close()


我想将其与下面的代码一起添加。

将下面示例中的线程代码合并到类代码中并不困难-只需将方法
handle\u request()
替换为

    def handle_request(self):
      while 1:
        conn, address = self.s.accept()
        print("\n======after accepting request=====\n")
        conn.send(b'connected\n', self.buff_size)
        print("got connection from%s"%{address}) 
        Thread(target=self.clientHandler, args=(conn, )).start()

    def clientHandler(self, conn):
        client_string = conn.recv(self.buff_size)
        print(client_string)    # or do what's supposed to do
        conn.close()

这实际上是将
accept()
clientHandler()
线程的
start()
放在一个循环中,而不是在主线程中处理客户机。

那么您得到了什么问题?我需要使用threadin处理请求/您的代码有什么问题?你有什么错误