Ứng dụng của tôi tạo một kết nối TCP, Điều này đang hoạt động bình thường. Nhưng trong một mạng máy chủ đã nhiều IP nóiLỗi kết nối TCP 115 Thao tác đang diễn ra Nguyên nhân là gì?
- 174.XXX
- 54.xxx như thế này
Khi gọi TCP connect (Non chặn với thời gian chờ là 60 giây) sang IP 174.X.X.X
luôn thành công. Nhưng TCP kết nối với cùng một máy chủ với ip 54.x.x.x
là không (hầu hết các lần) với hoạt động errno 115 measn đang tiến hành.
bạn có thể vui lòng giải thích cho tôi là những gì các lý do có thể cho errno OS 115
: Linux
đang conenct TCP của tôi là như sau
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;
}
gì xảy ra nếu bạn cố gắng để telnet đến ip 54.x.x.x mà không sử dụng ứng dụng của bạn? Hành vi tương tự? –
không, công việc ứng dụng putty thủ công tốt – user1340512
'Không chặn với thời gian chờ' là một mâu thuẫn về mặt. – EJP