Следующий фрагмент открывает сервлет, но каждый раз на другом порту.
#lang web-server/insta
(define (start req)
(response/xexpr
`(html (head (title "Hello world!"))
(body (p "Hey out there!")))))
Документация объясняет, как указать номер порта, если это необходимо. Но мне любопытно, как web-server/insta
решает, на каком порту работать, когда не указан . Я нашел источник на Github здесь , но моя Ракетка далеко не на высоте, и я не могу понять, что я читаю там. У кого-нибудь есть идеи как выбрать порт?
Спасибо!
Edit:
Только что узнал про "эфемерные порты".
Эфемерный порт - это недолговечная конечная точка, которая создается операционной системой, когда программа запрашивает любой доступный пользовательский порт. Операционная система выбирает номер порта из предопределенного диапазона, обычно от 1024 до 65535, и освобождает порт после завершения соответствующего соединения TCP. - vmware docs
Так что вполне вероятно, что Racket просто запрашивает любой доступный порт, а операционная система возвращает "эфемерный порт". Тем не менее, я хотел бы подтвердить эту теорию, если кто-нибудь может указать мне фактический исходный код на веб-сервере Racket, где это происходит.