【发布时间】:2018-11-05 19:00:31
【问题描述】:
假设我有一个服务器XYZ,它监听 TCP 客户端的端口 50000 和 HTTP 客户端的端口 80。另一方面,我有一个客户端,它使用 WebSocket 建立到端口 50000 的套接字连接,并将使用 HTTP 端口 80 进行握手(当然)。
现在,当客户端启动时,它首先会通过 HTTP 端口 80 向服务器 XYZ 发送请求,服务器将在端口 80 上接收握手请求并发送欢迎响应。所以,在这种情况下,双方都在使用 80 端口(当然)。
现在,当握手完成时,标准文档指出,用于握手目的的 HTTP 请求/响应的同一 TCP 连接随后转换为 TCP 套接字连接。好吧好吧。
但是,但是,如果整个握手过程和 HTTP 请求/响应的 TCP 连接第一次使用端口 80,并且相同的 TCP 连接转换为 TCP 套接字连接,则整个过程是通过端口 80 完成的, 那么同一个 TCP 连接如何转换为双方 TCP 套接字的 50000 端口呢?客户端是否在内部初始化另一个 TCP 连接以更改为端口 50000?
那么,任何人都可以说出端口转换是如何执行的以及如何在WebSocket 中从端口 80 到双方的不同端口?如何在不同的端口上建立完整的单套接字连接?同一个 TCP 连接如何改变/翻转其端口?
【问题讨论】:
-
“标准文档”,无论您是什么意思,都没有说任何这样的事情。套接字仍然是套接字,端口仍然是端口,连接仍然是连接。没有任何东西被转换。端口 5000 是客户端端口。没什么神秘的。
标签: tcp websocket port tcpsocket