【问题标题】:How to multiplie clients [closed]如何多个客户[关闭]
【发布时间】:2016-11-19 09:45:20
【问题描述】:

这是在服务器与客户端之间建立连接的代码的一部分。我想成倍增加客户。给予帮助。

import socket, pickle import threading

BUF_SIZE = 8192

class   Network(threading.Thread):

    def __init__(self,frame):
        threading.Thread.__init__(self)
        self.frame = frame
        self.server_sock= socket.socket()

    def  run(self):
        self.server_sock.bind(('',1729))
        self.server_sock.listen(1)
        client_sock, client_address = self.server_sock.accept()
        data = client_sock.recv(BUF_SIZE)
        processes_list = pickle.loads(data)
        for process_details in processes_list:
            self.frame.add_line(process_details)

        client_sock.close()
        self.server_sock.close()
        self.server_sock.close()

【问题讨论】:

    标签: python sockets server client


    【解决方案1】:

    通常的做法是为每个连接的客户端启动一个新线程或进程,例如(我不懂 Python,所以我会用一些伪代码解释它):

    create server socket;
    listen on specific address;
    
    while (true)
    {
         accept client;
         start a new thread for client;
    }
    
    close server socket;
    

    在新线程中,您将处理每个新的客户端连接,只需将客户端套接字传递给新的线程。

    new thread function (client socket)
    {
         read (client socket);
         write (client socket);
         close (client socket);
    }
    

    我还建议您将侦听积压队列增加到 2-5 个连接。

    【讨论】:

    猜你喜欢
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-20
    • 2016-04-19
    • 2013-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多