Здравствуйте!
Для своего
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 в режим ожидания?