Я читаю из Java Socket в цикле.
Я хочу снова открыть сокет, если чтение вызывает исключение.
В попытке проверить это, я просто закрываю сокет и ловлю исключение.
Подвох в том, когда я пытаюсь снова открыть сокет:
serverSocket = new ServerSocket(port)
socket = serverSocket.accept()
выдает исключение:
java.net.BindException: The socket name is already in use
Это немедленная проблема для тестирования. Но это может произойти и в производстве.
Как можно надежно восстановить, открыв новое сокетное соединение, после исключения
был брошен?