TCP Connect error 115 Arbeit, Was ist die Ursache?

Meine Anwendung erstellt dazu eine TCP-Verbindung, Das funktioniert normalerweise.
Aber in einem Netzwerk-server hat viele IP-sagen

  • 174.X.X.X
  • 54.x.x.x
    wie diese

Beim Aufruf TCP-Verbindung (Nicht blockierend mit timeout von 60 Sekunden)
IP 174.X.X.X ist immer Erfolg .
Aber TCP-Verbindung zum selben server mit der ip - 54.x.x.x ist nicht (fast immer) mit errno 115
measn operation in progress.

Kannst du bitte erklären Sie mir, was sind die möglichen Gründe für errno 115

OS : Linux

Mein TCP-conenct code ist wie folgt

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;

}
  • Was passiert, wenn Sie versuchen, mit telnet auf die 54.x.x.x-ip ohne Ihre Anwendung? Dasselbe Verhalten?
  • Nein, die Manuelle putty-Anwendung funktionieren
  • 'Nicht-blockierend mit timeout' ist ein Widerspruch in sich.
InformationsquelleAutor user1340512 | 2012-04-18
Schreibe einen Kommentar