Клиент - сервер. Где использовать 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);
}
}