Meine Anwendung erstellt eine TCP-Verbindung. Dies funktioniert normalerweise. Aber in einem Netzwerk-Server viele IP sagenTCP Connect-Fehler 115 Vorgang läuft Was ist die Ursache?
- 174.XXX
- 54.xxx wie diese
Beim Aufruf TCP Verbindung (nicht mit Timeout von 60 Sekunden zu blockieren) IP hat 174.X.X.X
ist immer Erfolg. Aber TCP-Verbindung zu demselben Server mit IP 54.x.x.x
ist fehlgeschlagen (die meiste Zeit) mit errno 115 Messung läuft.
Können Sie mir bitte erklären, was die mögliche Ursache für errno OS
115: Linux
Code My TCP conenct wie unten ist
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, ohne Ihre Anwendung auf die 54.x.x.x ip telnet? Gleiches Verhalten? –
Nein, Manuelle Spachtel-Anwendung funktioniert gut – user1340512
'Non-Blocking mit einem Timeout' ist ein Widerspruch in Bezug auf. – EJP