Допустим, у меня есть сервер XYZ
, который прослушивает порт 50000 для клиентов TCP и порт 80 для клиентов HTTP. А с другой стороны, у меня есть клиент, который использует WebSocket для установки сокет-соединения с портом 50000 и будет использовать HTTP-порт 80 для рукопожатия (конечно).
Теперь, когда клиент запускается, он сначала отправит запрос на сервер XYZ
через HTTP-порт 80, и сервер получит свой запрос на порт 80 для квитирования и отправит ответ для приветствия. Таким образом, в этом случае обе стороны используют порт 80 (конечно).
Теперь, когда рукопожатие завершено, в стандартной документации сказано, что то же самое TCP-соединение, которое используется для HTTP-запроса / ответа в целях рукопожатия, затем преобразуется в соединение TCP-сокета. Хорошо, верно.
Но, но если весь этот процесс рукопожатия и TCP-соединение для HTTP-запроса / ответа использует порт 80 в первый раз, и то же самое TCP-соединение преобразуется в соединение TCP-сокета, и весь этот процесс выполняется через порт 80 Тогда как же TCP-соединение преобразуется в порт 50000 для сокета TCP на обеих сторонах? Клиент инициализирует другое TCP-соединение для перехода на порт 50000?
Итак, кто-нибудь может сказать, как выполняется преобразование порта и работает в WebSocket
с порта 80 на другой порт в обеих сторонах? Как установить полное соединение с одним сокетом на разных портах? Как одно и то же TCP-соединение меняет / переворачивает свои порты?