我有一个由主服务器和分布式从服务器组成的程序。从服务器向服务器发送状态更新,如果服务器在固定时间内没有收到特定的从服务器的响应,则会将从服务器标记为关闭。这一直在发生。无法分配请求的地址 - 可能的原因?
从检查日志,我发现从站只能发送一个状态更新到服务器,然后永远不能发送另一个更新,总是失败的通话连接()“无法分配请求的地址(99)
奇怪的是,从服务器能够向服务器发送几个其他更新,并且所有的连接都在同一个端口上发生,看起来这种故障的最常见原因是连接是还有其他可能的解释吗?
为了澄清,这里是我如何连接:
struct sockaddr *sa; // parameter
size_t sa_size; //parameter
int i = 1;
int stream;
stream = socket(AF_INET,SOCK_STREAM,0);
setsockopt(stream,SOL_SOCKET,SO_REUSEADDR,&i,sizeof(i));
bindresvport(stream,NULL);
connect(stream,sa,sa_size);
此代码位于一个函数中,用于获取与另一个服务器的连接,并且这四个调用中的任何一个失败都会导致该函数失败。
我已经验证了端口和ip地址都是正确的。 – dbeer