Tag: tcplistener cancel

使用TcpListener取消NetworkStream.ReadAsync

请考虑以下简化示例(准备在LinqPad中滚动,需要提升帐户): void Main() { Go(); Thread.Sleep(100000); } async void Go() { TcpListener listener = new TcpListener(IPAddress.Any, 6666); try { cts.Token.Register(() => Console.WriteLine(“Token was canceled”)); listener.Start(); using(TcpClient client = await listener.AcceptTcpClientAsync() .ConfigureAwait(false)) using(var cts = new CancellationTokenSource(TimeSpan.FromSeconds(5))) { var stream=client.GetStream(); var buffer=new byte[64]; try { var amtRead = await stream.ReadAsync(buffer, 0, buffer.Length, cts.Token); Console.WriteLine(“finished”); } catch(TaskCanceledException) […]