Sta*_*low 0 port tcp tcpsocket websocket
假设我有一个服务器XYZ,它侦听 TCP 客户端的端口 50000 和 HTTP 客户端的端口 80。另一方面,我有一个客户端,它使用 WebSocket 建立到端口 50000 的套接字连接,并将使用 HTTP 端口 80 进行握手(当然)。
现在,当客户端启动时,它首先会XYZ通过 HTTP 端口 80 向服务器发送请求,服务器将在端口 80 上接收其握手请求,并发送欢迎响应。因此,在这种情况下,双方都在使用端口 80(当然)。
现在,握手完成后,标准文档表示用于握手目的的 HTTP 请求/响应的同一个 TCP 连接将转换为 TCP 套接字连接。好吧,对。
但是,如果 HTTP 请求/响应的整个握手过程和 TCP 连接第一次使用端口 80,并且相同的 TCP 连接转换为 TCP 套接字连接,并且整个过程是通过端口 80 完成的,那么如何双方的 TCP 套接字是否将相同的 TCP 连接转换为端口 50000?客户端是否会在内部初始化另一个 TCP 连接以更改为端口 50000?
那么,谁能告诉我们如何执行端口转换并在WebSocket从端口 80 到双方不同端口的情况下工作?如何在不同端口上建立完整的单套接字连接?同一个 TCP 连接如何更改/翻转其端口?
TCP 套接字连接根本无法更改端口。连接建立后,其端口将被锁定且无法更改。如果在端口 80 上有 TCP 套接字连接,则在端口 50000 上建立连接的唯一方法是建立完全独立的 TCP 套接字连接。
WebSocket 无法连接到端口 80,然后切换到端口 50000。但是,从端口 80 提供给浏览器的 HTML 页面可以包含客户端脚本,允许浏览器创建 WebSocket 对象并将其连接到端口 50000。两个 TCP 连接(HTTP 和 WebSocket)彼此完全独立(事实上,一旦提供 HTML,HTTP 套接字连接甚至不需要保持打开状态,因为 HTTP 是无状态协议)。
| 归档时间: |
|
| 查看次数: |
5230 次 |
| 最近记录: |