Я тестирую соединения SFTP с третьим лицом, мы используем C# и Renci для этого.SFTP-соединения не закрываются (Renci & C#)
Но соединения, похоже, не закрываются. Это мой простой контрольный код:
public bool TestConnection()
{
using (var client = new SftpClient(_connectionInfo))
{
try
{
client.Connect();
if (!client.IsConnected)
return false;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return false;
}
finally
{
client.Disconnect();
client.Dispose();
}
return true;
}
}
Строго говоря, разъединение и утилизация являются излишними.
Wireshark показывает последняя команда каждого теста от нас на хосте
59916 → 22 [RST, ACK] Seq = 2319 Ack = тысячу девятьсот сорок один Win = 0 Len = 0
Который мне указывает, что соединение должно закрыться. Однако после примерно 19 последовательных тестов хост начинает принудительно закрывать попытки соединения до тех пор, пока исходные соединения не начнут синхронизировать время. Является ли хост игнорирующим RST, что-то вроде брандмауэра, препятствующего отключению? Что происходит?
Просто подсказка для вас; Если вы посмотрите на [с помощью документации Statement] (https://msdn.microsoft.com/en-us/library/yh598w02.aspx), он будет распоряжаться самим клиентом. Нет необходимости делать это самостоятельно. –
Да, я знаю :) Следовательно, строка «Строго говоря, разъединение и утилизация избыточны». – Schuits
Это может быть немного непонимание. Первое, что я думал, это то, что Disconnect является избыточным для Dispose –