私のアプリケーションはTCP接続を作成します。これは正常に機能しています。しかし、1つのネットワークサーバーには多くのIPがあります
- 174.XXX
- このような54.xxx
TCP接続(60秒のタイムアウトで非ブロッキング)をIPに呼び出すと、174.X.X.X
常に成功します。しかし、IPを使用した同じサーバーへのTCP接続54.x.x.x
は(ほとんどの場合)失敗し、errno115measn操作が進行中です。
errno115の考えられる理由を教えてください
OS: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;
}