Мое приложение создает TCP-соединение, оно работает нормально. Но в одной сети сервер имеет много IP, скажем
- 174.X.X.X
- 54.x.x.x нравится это
При вызове TCP соединение (неблокирующее с тайм-аутом 60 секунд) к IP 174.X.X.X
всегда успешно. Но TCP-соединение с тем же сервером с ip 54.x.x.x
не работает (в большинстве случаев) с ошибкой 115 в процессе выполнения операции measn.
Не могли бы вы объяснить мне, какова возможная причина ошибки 115?
ОС: линукс
Мой код подключения 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;
}