Продолжайте пытаться подключиться к основному серверу при подключении к удаленному серверу TCP C ++ - PullRequest
0 голосов
/ 31 августа 2018

Я хотел бы создать надежную систему, будучи клиентом для подключения к основному серверу. В случае сбоя основного сервера мне необходимо подключиться к удаленным серверам (3 из них). Как только я установил соединение с одним из них, мне нужно попытаться снова подключиться к первичному серверу, если он вернется, переключиться на основной сервер и отключиться от удаленного сервера, который только что был подключен.

Я создал два потока для Tx и Rx. Нужно ли создавать другой поток, в котором он пытается подключиться к первичному серверу в случае сбоя и передать FD (файловый дескриптор) первичного управления потоком?

Дайте мне знать, как справиться с этой ситуацией. Я знаю, как подключиться к другому серверу, когда я отсоединяюсь от основного.

while (!socketWrapperPtr->isStopping())
{
    if (!socketWrapperPtr->createSocket()) 
    {

        if (numberOfConnectionTrials > 3)
        {
            index = getNextremoteServerIndex();
             socketWrapperPtr->setIpAdressAndPort(IPservers(index), Ports(index));
             numberOfConnectionTrials =0;
        }
        numberOfConnectionTrials++;
        sleep(30);
    }    
    else
    {
        connected = true;           
    }
}
...