У меня в моем приложении произошел сбой, который не кажется воспроизводимым. У меня возникло соединение сокетов TCP, и приложение попыталось его повторно подключить. Во втором вызове connect(), пытающемся повторно подключиться, я получил результат ошибки с errno == EADDRNOTAVAIL, который указывает страница man для connect(): "Указанный адрес недоступен на локальной машине".
Глядя на вызов connect(), второй аргумент представляет собой адрес, к которому относится ошибка, но, как я понимаю, этот аргумент является адресом сокета TCP удаленного хоста, поэтому я смущен о странице руководства, ссылающейся на локальную машину. Является ли этот адрес удаленным узлом сокета TCP недоступным с моей локальной машины? Если да, то почему? Это должно было быть вызвано connect() в первый раз до того, как соединение завершилось неудачно, и он попытался повторно подключиться и получил эту ошибку. Аргументы для connect() были одинаковыми оба раза.
Будет ли эта ошибка временной, которая, если бы я попыталась позвонить, снова могла бы уйти, если бы я подождал достаточно долго? Если нет, как я должен попытаться восстановиться после этого отказа?