Здравствуйте!
Для своего
asp.net web api
нужно добавить
Tcp
сервер, который будет работать на заднем фоне как
BackgroundService
. Проблемы в самом сервисе нет, вопрос заключается в создании
Tcp
слушателя, который будет работать в режиме ожидания аналогично эндпоинтам контроллеров на
web api
.
Мне не нравится вот такой вариант:
while (!stoppingToken.IsCancellationRequested)
{
Console.WriteLine("Waiting for a connection...");
TcpClient client = await _listener.AcceptTcpClientAsync();
if (client != null)
{
Console.WriteLine("Connected!");
_ = HandleClientAsync(client, stoppingToken);
}
}
И вот такой вариант:
private async void AcceptClientAsync()
{
try
{
TcpClient client = await _listener.AcceptTcpClientAsync();
Console.WriteLine("Connected!");
_ = HandleClientAsync(client);
AcceptClientAsync();
}
catch (Exception ex)
{
Console.WriteLine($"Exception: {ex.Message}");
}
}
Есть ли лучшие варианты кроме этих, что бы поставить
TcpListener
в режим ожидания?