Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csSpSoTmo 488 of 509 menu
◀ ▶

Таймаут TCP в C#

Короткий таймаут задают объектом CancellationTokenSource и передают его токен в ConnectAsync. Если по адресу 127.0.0.1 и порту 19999 никто не слушает, вызов заканчивается ошибкой:

using System.Net.Sockets; using TcpClient client = new(); using CancellationTokenSource cts = new(TimeSpan.FromMilliseconds(500)); try { await client.ConnectAsync("127.0.0.1", 19999, cts.Token); } catch (Exception ex) when (ex is OperationCanceledException or SocketException) { Console.WriteLine("cancelled"); }

На Linux отказ соединения может прийти как SocketException, а не только как отмена токена - обрабатывают оба варианта.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить