How to multiplie clients [closed]

夙愿已清 提交于 2019-12-12 03:46:42

问题


This is a part from a code that make connection between server to client. i want to multiplie the client. appriciate help.

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()

回答1:


The common practice is to start a new thread or process for each connected client like (I do not know Python so I will explain it in some pseudocode):

create server socket;
listen on specific address;

while (true)
{
     accept client;
     start a new thread for client;
}

close server socket;

In new thread you will process every new client connection, need only client socket to pass to the new thead.

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

I also recomend you to increase listen backlog queue to 2-5 connections.



来源:https://stackoverflow.com/questions/40691395/how-to-multiplie-clients

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!