Нет запросов на Quepalive после установки для SocketOptionLevel.socketC#

Место общения программистов C#
Anonymous
 Нет запросов на Quepalive после установки для SocketOptionLevel.socket

Сообщение Anonymous »

У меня есть и два приложения
1 -е место открывает TcpClient: < /p>
client = new TcpClient();
client.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true);
client.NoDelay = true;
client.Connect(settings.Hostname, settings.Port);
< /code>
2 -й прослушивает: < /p>
var listener = new TcpListener(settings.IPAddress, settings.Port);

var listenerThread = new Thread(() => Listen(listener, cancellationTokenSource.Token))
{
IsBackground = true,
Priority = ThreadPriority.AboveNormal,
};

private void Listen(TcpListener tcpListener, CancellationToken cancellationToken)
{
tcpListener.Start();

// stop listener on cancellation
cancellationToken.Register(tcpListener.Stop);

try
{
while (!cancellationToken.IsCancellationRequested)
{
var client = tcpListener.AcceptTcpClient();
client.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true);

// Register client in background
Task.Run(() => RegisterClientConnection(client), cancellationToken)
.LogErrors(SystemLogManager.Current, "Error while registering client connection");
}
}
catch (SocketException)
{
// logging
}
}
< /code>
и некоторая логика для чтения потока: < /p>
using (var clientStream = tcpClient.GetStream())
...
bytesRead = await clientStream.ReadAsync(messageBuffer, messageBufferPointer, tcpClient.ReceiveBufferSize, cancellationToken);
< /code>
Странная часть, которую я не вижу никаких запросов на поддержку в Wireshark, и соединение сломано через 5 минут от брандмауэра Azure. case?
Оба приложения на .netframework 4.7.2

Подробнее здесь: https://stackoverflow.com/questions/768 ... vel-socket

Вернуться в «C#»