Существует превосходная статья о Витамине Cal Henderson известности Flickr о том, как они оптимизируют предоставление своего CSS и JavaScript: http://www.iamcal.com/serving-javascript-fast/
Вот что я делаю: начинаю со случайного порта в диапазоне 1025-2000 (диапазон выбирается произвольно). Я пытаюсь привязать его, и если не получается, перехватываю исключение. Затем я перехожу на один порт вверх ( порт = порт% 2000 + 1025
), пока не завершу. Если порт не привязан, я отказываюсь, не пройдя тест.
при использовании случайного порта высокого уровня вы можете генерировать конфликты с другими серверными процессами, которые хотят запускаться после вашей программы. просто используйте ноль в качестве номера порта, и пусть ОС позаботится о резервировании (/ etc / services в unix, не знает, как Windows это обрабатывает).
Установите порт на ноль. Это позволит операционной системе выбрать доступный для вас порт. Если вам нужно определить, какой порт использовался, вы можете запросить это из сокета после того, как он был привязан локально.