在连接到远程服务器TCP C ++时继续尝试连接到主服务器

时间:2018-08-30 22:13:29

标签: tcp client

我想通过作为客户端连接到主服务器来创建一个可靠的系统。如果主服务器出现故障,我需要连接到远程服务器(其中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;           
    }
}

0 个答案:

没有答案