EasyModbus: отключение от сети не меняет состояние соединения - PullRequest
0 голосов
/ 28 сентября 2018

В приложении C # я использую EasyModbus для подключения к удаленному серверу:

ModbusClient client = new ModbusClient()
{
    IPAddress = "192.168.1.100",
    Port = 502,
    ConnectionTimeout = 200
}

try
{
    client.Connect();
}
catch (EasyModbus.Exceptions.ConnectionException)
{
    throw;
}
catch (System.Net.Sockets.SocketException)
{
    throw;
}

, затем в других частях моего приложения я пытаюсь читать / писать, только если клиент все еще подключен:

if (client.Connected)
{
    try
    {
        int[] readHoldingRegisters = client.ReadHoldingRegisters(1000, 10);
        // do something
    }
    catch (Exception)
    {
        throw;
    }
}

Если во время работы приложения я отключаю свой ноутбук от сети WiFi, свойство Connected остается равным true даже после долгого времени.Я получаю исключение «вне диапазона», когда пытаюсь прочитать регистры, но мне интересно, почему это свойство не превращается в false сразу.По крайней мере, я ожидал бы исключение «тайм-аут», когда я пытался что-то читать / писать.

Есть ли лучший способ узнать, что сервер больше недоступен?

...