Как долго требуется, чтобы ОС закрывала сокет после вызова метода close () в java?

Я занимаюсь программированием на Java. в цикле я открываю сокет, отправляю некоторые данные и закрываю их. но я получаю исключение из «соединения, которое уже используется». Я предполагаю, что это происходит, поскольку я использую один и тот же порт при каждом повторении цикла. сколько времени требуется для ОС (Ubuntu 11.10), чтобы закрыть сокет и освободить порт? Спасибо

упрощенный код выглядит так

while(true){ Socket clientSocket = new Socket("localhost", 5000); PrintWriter outToServer = new PrintWriter( clientSocket.getOutputStream(),true); outToServer.println ("Hi") ; clientSocket.close(); } 

    Это может занять довольно много времени (например, до 3 минут, если есть неотправленные данные)

    В вашем случае вы используете другой локальный порт (тот же самый удаленный порт не имеет значения) каждый раз, поэтому это не имеет значения.

    BTW: Создание нового подключения довольно дорого, я бы попытался повторно использовать соединение, а не открывать новый каждый раз. В приведенном выше примере это может быть на 1000 раз быстрее. 😉