Я вижу следующую логику в одной из java-библиотек для проверки открытия сокета на локальном хосте:
ServerSocket socket = new ServerSocket(port);
socket.close();
Мой вопрос: приведет ли этот сокет к состоянию TIME_WAIT на локальном хосте, когда пакеты данных не были отправлены, а сокет закрывается сразу после его открытия? В таком случае, если приложение пытается выполнить привязку к тому же порту, может ли это вызвать «ошибку адреса, уже используемого», если это делается в пределах значения 2MSL?
Я написал небольшую тестовую программу, как описано выше, но когда я использую netstat или ss на машине с Linux, где я запускал эту программу, я вообще не вижу TIME_WAIT для этого порта. Разве конечный автомат не должен применяться даже в том случае, если сокет не использовался для отправки каких-либо пакетов данных?