Melhor maneira de aceitar vários clientes tcp?

Tenho uma infraestrutura de cliente / servidor. No momento, eles usam um TcpClient e TcpListener para enviar dados de recebimento entre todos os clientes e o servido

O que eu faço atualmente é que, quando os dados são recebidos (em seu próprio encadeamento), eles são colocados em uma fila para outro encadeamento processar, a fim de liberar o soquete para que fique pronto e aberto para receber novos dado

                // Enter the listening loop.
                while (true)
                {
                    Debug.WriteLine("Waiting for a connection... ");

                    // Perform a blocking call to accept requests.
                    using (client = server.AcceptTcpClient())
                    {
                        data = new List<byte>();

                        // Get a stream object for reading and writing
                        using (NetworkStream stream = client.GetStream())
                        {
                            // Loop to receive all the data sent by the client.
                            int length;

                            while ((length = stream.Read(bytes, 0, bytes.Length)) != 0)
                            {
                                var copy = new byte[length];
                                Array.Copy(bytes, 0, copy, 0, length);
                                data.AddRange(copy);
                            }
                        }
                    }

                    receivedQueue.Add(data);
                }

No entanto, eu queria descobrir se existe uma maneira melhor de fazer isso. Por exemplo, se houver 10 clientes e todos eles quiserem enviar dados para o servidor ao mesmo tempo, um continuará enquanto todos os outros falharão. Ou se um cliente tiver uma conexão lenta e consumir o soquete, todas as outras comunicações serão interrompidas. .

Não existe uma maneira de poder receber dados de todos os clientes ao mesmo tempo e adicionar os dados recebidos na fila para processamento quando o download termina

questionAnswers(4)

yourAnswerToTheQuestion