【问题标题】:Using IdHTTP to send array of bytes to a PHP使用 IdHTTP 将字节数组发送到 PHP
【发布时间】:2013-03-17 23:54:50
【问题描述】:

我正在尝试使用 IdHTTP 组件构建一个简单的客户端 - 服务器 - 客户端应用程序。 如何使用 IdHttp 组件将字节数组从 client1 发送到位于 www.example.com 的 php 文件,并让该 php 文件使用 IdHTTp 发送相同的数据以供 client2 使用?也许我在这里走错了路。

【问题讨论】:

  • 什么是client2,另一个HTTP客户端?
  • 客户端 2 是一台本地机器,它使用 IdHTTp 从 PHP 接收“处理过的”数据。

标签: delphi indy idhttp


【解决方案1】:

为了将数据从 client1 发送到服务器,我建议使用 Base64 编码。这样你就有一个普通的字符串而不是一个字节数组。使用 IdHTTP 发送字符串很简单。另一种方法是多部分表单数据 (Java code here)。

为了在client2上接收数据:HTTP客户端不知道服务器上什么时候有数据。异步接收(服务器推送)是新的 WebSocket 协议的一个特性,它是 HTTP 的扩展,因此它需要在客户端和服务器端进行特定的扩展。 Delphi 的 WebSocket 协议有开源和商业实现。

如果您的 client2 是一个普通的 HTTP 客户端,它除了不断地从服务器轮询数据外别无选择。对于基本用例,我建议使用 TIdTCPClient 组件而不是 TidHTTP,它可以让您更好地控制传入数据的处理。客户端jst需要在服务器的80端口上打开一个socket连接,发送一个格式良好的HTTP请求,然后运行一个循环来接收响应。当服务器有新数据时,PHP 脚本将开始发送数据(甚至可能没有 HTTP 响应头),然后是 Base64 编码的数据。

【讨论】:

  • 谢谢,我正在寻找一些指导来制作一个穷人的团队查看器类型的应用程序。
猜你喜欢
  • 2011-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-20
  • 1970-01-01
相关资源
最近更新 更多