我有一個由主服務器和分佈式從服務器組成的程序。從服務器向服務器發送狀態更新,如果服務器在固定時間內沒有收到特定的從服務器的響應,則會將從服務器標記爲關閉。這一直在發生。無法分配請求的地址 - 可能的原因?
從檢查日誌,我發現從站只能發送一個狀態更新到服務器,然後永遠不能發送另一個更新,總是失敗的通話連接()「無法分配請求的地址(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