delphi - 在 Delphi 10.4 中,当通过 TWebBroswer 连接时,如何将客户端 tcp 端口提供给 WebBroker (TWebModule)?
问题描述
也许我没有寻找正确的术语,或者这可能不是人们通常关心的事情,但我根本不知道如何获取客户端连接的 TCP 端口。
我有一个使用 TWebBrowser 的客户端和一个运行 Delphi WebModule 的 Apache 服务器。客户端连接到端口 80 上的 URL,我需要报告客户端正在使用的端口。
在 WebModule 端,我可以收集传入连接 (Request.RemoteAddr) 的 IP 地址以及它在 POST 正文中发送的任何变量,但我似乎无法获取它的来源端口。
我使用 Indy 找到了一些对此的解释,但没有任何东西可以帮助我在客户端或服务器端实现一些有用的东西。我不确定从这里去哪里,所以欢迎任何建议。
解决方案
可悲的是,TWebRequest
根本不公开客户端的端口,或访问所需的底层请求/套接字,因此您可以手动获取客户端的端口。
这是 WebBroker 本身的限制,而不是 Indy(这是 WebBroker 可以通过 Indy 的IdHTTPWebBrowserBridge
单元使用的可用后端之一。Indy 可以访问客户端端口,但您无权访问 WebBroker 的 Indy HTTP 服务器内部使用)。
推荐阅读
- eclipse - 在 Mac OS Big Sur Beta 上安装 Spring 工具套件 - 导入项目不起作用
- python - 隐藏python服务器ip
- mysql - MySQL - 对结果求和并加入单个查询
- python - Squarify - 在树形图中自动调整标签大小
- sql-server - 在查询中分组相关记录
- python-3.x - 如何在 Ubuntu 中设置环境变量?
- flutter - MissingPluginException(在通道 plugins.flutter.io/share 上找不到方法共享的实现)
- asp.net-core - 如何在 ASP.NET Core MVC 中自动绑定登录用户
- python - 用于语音识别的 Python 代码不起作用
- airflow - Apache Airflow:在操作员执行之间存储下载文件的位置?