Mi aplicación crea una conexión TCP. Esto funciona normalmente. Pero en un servidor de red IP, es decir tiene muchosError de conexión TCP 115 Operación en progreso ¿Cuál es la causa?
- 174.XXX
- 54.xxx como esto
Cuando TCP llamar a connect (para no bloquear con tiempo de espera de 60 segundos) a IP 174.X.X.X
es siempre exitoso. Pero la conexión TCP al mismo servidor con ip 54.x.x.x
está fallando (la mayoría de las veces) con errno 115 operación de medición en curso. Linux
Mi código conenct TCP es la siguiente
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;
}
¿Qué ocurre si se intenta telnet a la ip 54.x.x.x sin necesidad de utilizar su aplicación? ¿El mismo comportamiento? –
no, la aplicación de masilla manual funciona bien – user1340512
'No-bloqueo con un tiempo de espera' es una contradicción en los términos. – EJP