using System.Buffers;
using System.Net;
using System.Net.Sockets;
var ct = new CancellationTokenSource();
Console.CancelKeyPress += async (_, _) => await ct.CancelAsync();
var listener = new TcpListener(IPAddress.Any, 5000);
listener.Start();
Console.WriteLine("TcpServer is Ready To Listen...");
while (true)
{
var client = await listener.AcceptTcpClientAsync(ct.Token);
var steam = client.GetStream();
Console.WriteLine("TcpServer Successfully Connected with TcpClient!");
var arrayPool = ArrayPool.Shared;
try
{
while (true)
{
var requestBuffer = arrayPool.Rent(1);
await steam.ReadExactlyAsync(requestBuffer.AsMemory(0, 1), ct.Token);
var value = BitConverter.ToInt32(requestBuffer);
arrayPool.Return(requestBuffer);
Console.WriteLine(value);
}
}
catch (OperationCanceledException)
{
Console.WriteLine("TcpServer was Shutdown!");
}
catch (IOException)
{
Console.WriteLine("TcpClient was Disconnected!");
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
await steam.DisposeAsync();
}
}
Можно достичь функциональности K8s до 0 в этом C# Raw Tcpserver?>