Клиент - сервер. Где использовать Using для TcpClient? - C#
Формулировка задачи:
Вот мы запускаем Server
// Тут использовать using?
Листинг программы
- new Server(80);
Листинг программы
- internal class Server
- {
- private readonly TcpListener Listener;
- public Server(int Port)
- {
- Listener = new TcpListener(IPAddress.Any, Port);
- Listener.Start();
- while (true)
- {
- ThreadPool.QueueUserWorkItem(new WaitCallback(ClientThread), Listener.AcceptTcpClient());
- int workerThreads = Environment.ProcessorCount * 8;
- ThreadPool.SetMaxThreads(workerThreads, workerThreads);
- ThreadPool.SetMinThreads(2, 2);
- }
- }
- public void ClientThread(object StateInfo)
- {
- try
- {
- new Client((TcpClient)StateInfo);
- }
- catch(Exception ex)
- {
- MessageBox.Show(ex.Message);
- }
- }
- ~Server()
- {
- Listener?.Stop();
- }
- }
Листинг программы
- class Client
- {
- public Client(TcpClient client)
- {
- using (client)
- {
- // код
- }
- }
- }
Решение задачи: «Клиент - сервер. Где использовать Using для TcpClient?»
textual
Листинг программы
- public void ClientThread(object StateInfo)
- {
- try
- {
- using(var tcpClient = StateInfo as TcpClient) {
- var client = new Client(tcpClient); // только инициализируется, но ничего не делает
- client.ProcessRequest();
- }
- }
- catch(Exception ex)
- {
- MessageBox.Show(ex.Message);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д