首页 > 解决方案 > 在 Delphi 10.4 中,当通过 TWebBroswer 连接时,如何将客户端 tcp 端口提供给 WebBroker (TWebModule)?

问题描述

也许我没有寻找正确的术语,或者这可能不是人们通常关心的事情,但我根本不知道如何获取客户端连接的 TCP 端口。

我有一个使用 TWebBrowser 的客户端和一个运行 Delphi WebModule 的 Apache 服务器。客户端连接到端口 80 上的 URL,我需要报告客户端正在使用的端口。

在 WebModule 端,我可以收集传入连接 (Request.RemoteAddr) 的 IP 地址以及它在 POST 正文中发送的任何变量,但我似乎无法获取它的来源端口。

我使用 Indy 找到了一些对此的解释,但没有任何东西可以帮助我在客户端或服务器端实现一些有用的东西。我不确定从这里去哪里,所以欢迎任何建议。

标签: delphi

解决方案


可悲的是,TWebRequest根本不公开客户端的端口,或访问所需的底层请求/套接字,因此您可以手动获取客户端的端口。

这是 WebBroker 本身的限制,而不是 Indy(这是 WebBroker 可以通过 Indy 的IdHTTPWebBrowserBridge单元使用的可用后端之一。Indy 可以访问客户端端口,但您无权访问 WebBroker 的 Indy HTTP 服务器内部使用)。


推荐阅读