Клиент - сервер. Где использовать Using для TcpClient? - C#

Узнай цену своей работы

Формулировка задачи:

Вот мы запускаем Server
Листинг программы
  1. new Server(80);
Листинг программы
  1. internal class Server
  2. {
  3. private readonly TcpListener Listener;
  4. public Server(int Port)
  5. {
  6. Listener = new TcpListener(IPAddress.Any, Port);
  7. Listener.Start();
  8. while (true)
  9. {
  10. ThreadPool.QueueUserWorkItem(new WaitCallback(ClientThread), Listener.AcceptTcpClient());
  11. int workerThreads = Environment.ProcessorCount * 8;
  12. ThreadPool.SetMaxThreads(workerThreads, workerThreads);
  13. ThreadPool.SetMinThreads(2, 2);
  14. }
  15. }
  16. public void ClientThread(object StateInfo)
  17. {
  18. try
  19. {
  20. new Client((TcpClient)StateInfo);
  21. }
  22. catch(Exception ex)
  23. {
  24. MessageBox.Show(ex.Message);
  25. }
  26. }
  27. ~Server()
  28. {
  29. Listener?.Stop();
  30. }
  31. }
// Тут использовать using?
Листинг программы
  1. class Client
  2. {
  3. public Client(TcpClient client)
  4. {
  5. using (client)
  6. {
  7. // код
  8. }
  9. }
  10. }

Решение задачи: «Клиент - сервер. Где использовать Using для TcpClient?»

textual
Листинг программы
  1.         public void ClientThread(object StateInfo)
  2.         {
  3.             try
  4.             {
  5.                 using(var tcpClient = StateInfo as TcpClient) {
  6.                    var client = new Client(tcpClient); // только инициализируется, но ничего не делает
  7.                    client.ProcessRequest();
  8.                 }
  9.             }
  10.             catch(Exception ex)
  11.             {
  12.                 MessageBox.Show(ex.Message);
  13.             }
  14.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы