Ошибка подключения TCP 115 Выполняется операция В чем причина?

Мое приложение создает TCP-соединение. Это работает нормально. Но в одной сети сервер имеет много IP скажем

  • 174.X.X.X
  • 54.x.x.x вот так

При вызове TCP-соединения (Не блокируется с тайм-аутом 60 секунд )на IP 174.X.X.Xвсегда успех. Но TCP-соединение с тем же сервером с ip 54.x.x.xне работает (в большинстве случаев )с ошибкой 115 средняя операция в процессе.

Не могли бы вы объяснить мне, какова возможная причина ошибки 115

ОС :Linux

Мой код подключения TCP приведен ниже

tcp_connect(......)
{

  int iValOpt = 0;  
  int iLength= 0;

  fcnt((int)(long)SockID,F_SETFL_O_NONBLOCK);

  ret = connect (sockID,(struct sockaddr*)pstSockAdr,uiSockLen);

  if (ret < 0)
  {

        if (errno == EINPROGRESS)
        {
                stTv.tv_sec = 60;
                stTv.tv_usec = 0;
                FD_ZERO(&write_fd);
                FD_SET(sockID,&write_fd);

                iLength = sizeof(int);

                if (0 < select (sockID+1), NULL,&write_fd,NULL,&stTv);

                {
                        if(0 > getsockopt(sockID,SOL_SOCKET,SO_ERROR,(void*)(&iValOpt),&iLength))
                        {
                                return -1
                        }

                        if (0 != iValOpt)
                        {
                                return -1;
                        }


                        return success;
                }

                else
                {
                        return -1;
                }   

        }
        else
        {
                return -1;
        }
    }

   return success;

}
15
задан Jan de Vos 29 March 2016 в 17:43
поделиться