У меня здесь ситуация.У меня есть резервный TCP-сервер, который принимает входные данные, а затем выбрасывает много пакетов навсегда.Читая их, я также пытаюсь не отставать от состояния сервера из TCP-клиента, выполняя send на сокете.Но мои серверы избыточны, разделяя виртуальный IP.Поэтому, если server1 выходит из строя, server2 запускается и использует один и тот же VIP (В любой момент времени VIP работает и работает).Так что моя техника send способна обнаружить эту ситуацию.Мой сервер2 ожидает ввода данных от клиента, но, поскольку send не выполняет работу, которую я ожидаю, я не смогу повторно отправить ввод.
int status = ::send ( m_sock, s.c_str(), s.size(), MSG_NOSIGNAL );
if ( status == -1 )
{
return false;
}
else
{
return true;
}
Может кто-нибудь помочькак я могу выяснить этот вид аварийного переключения?