问题标签 [indy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
467 浏览

windows - 改进 UDP 消息处理

我有一个 PC 程序通过 UDP 从 20 个自定义硬件盒接收数据。这些盒子中的每一个都不断地向 PC 上的单个 UDP 套接字发送 UDP 消息。这些消息都包含 10 - 150 字节的数据,每个单元在 12 秒内发送大约 20 条消息。

测试表明 PC 遗漏了一些消息。网络上的盒子越少,错过的消息就越少。

长期的解决方案是在硬件中缓冲数据,并让 PC 根据需要通过 TCP 检索数据,但我需要在短期内解决/最小化丢失消息的问题,直到可以部署该解决方案。想法包括: - 升级 PC - 在传输之前过滤掉不必要的消息 - 将硬件中单独的 UDP 消息组合成一个更大的消息 - 在 PC 中使用多个套接字来接收消息

我正在寻找有关这些想法的反馈,以及我们可能错过的任何反馈。

接收程序是一个运行 Indy9 的 C++Builder 程序。

0 投票
3 回答
5934 浏览

asp.net - 使用 Delphi 和 TIdHttp 将数据发布到 ASP .NET 页面

我有一个像这样简单的http://issamsoft.com/app2/page1.aspx的 Asp .net 页面 ,我想使用 TIdHttp 向其发布一些数据并从响应中提取数据。我尝试在 Delphi2009 中这样做:

但 TIdhttp 总是给出错误(HTTP/1.1 500 Internal Server Error。)我在 idHttp 单元中阅读了一些评论,讨论了 http 协议 v 1.1 的问题,如下所示:

目前在发布 POST 时,IdHTTP 会自动将协议设置为版本 1.0,而与最初的值无关,这是因为有些服务器不完全遵守 RFC。特别是,他们不尊重发送/不发送 Expect: 100-Continue 标头。在我们找到不违反 RFC 的最佳解决方案之前,我们会将 POSTS 限制为 1.0 版。

我的代码有问题还是 TidHttp 错误?如果问题出在 TIdHttp 中,是否有任何解决方法?还是有其他使用 Indy 组件的解决方案?

除了。我使用 WebClient 在 C# 中制作了一个解决方案,效果非常好。

我在哪里可以在 Delphi 中找到像 WebClient 这样的(良好/可信的)类?免费首选:)

编辑:我希望 VIEWSTATE,EVENTVALIDATION 的机制对你来说足够清楚,它们是服务器生成的哈希值,它们可能会改变(已经改变),我的原始项目有一段代码只是为了提取当前的 VIEWSTATE,EVENTVALIDATION 值,但我省略了这部分只是为了让我的示例简单明了,所以当你想尝试上面的代码时,你必须从当前页面源中获取 VIEWSTATE,EVENTVALIDATION 值。

0 投票
3 回答
7353 浏览

delphi - Indy FTP 传输类型

我正在使用 IdFTP (Indy 10) 组件从远程位置下载一些文件(zip 和 txt)。在获取每个文件之前,我将 TransferType 设置为二进制。

我希望可以使用二进制模式下载文本和二进制文件。但是,在正确下载 zip 文件时,文本文件的内容似乎被弄乱了。如果我将文本文件的 TransferType 设置为 ASCII,它将按预期工作。如何检测为给定文件设置的 TransferType?是否有共同点或自动设置?

0 投票
2 回答
3593 浏览

delphi - 如何确定与 Indy 的连接是否仍然存在?

我使用 Indy 进行 TCP 通信(D2009,Indy 10)。

在评估客户请求后,我想将答案发送给客户。因此,我像这样存储 TIdContext(伪代码)

但是,如果客户端在请求和准备发送的答案之间的某个地方终止连接怎么办?如何检查上下文是否仍然有效?我试过

但这无济于事。在某些情况下,程序只是挂起,如果我暂停执行,我可以看到当前行是带有 if 条件的行。

这里会发生什么?如何避免尝试使用死连接发送?

0 投票
2 回答
12887 浏览

delphi - Delphi 6 和 Indy SSL 连接不工作

我需要通过 SSL 使用 Web 服务。为了实现这一点,我在 Delphi 6 中构建了一个 Web 客户端,它使用 Indy 读取客户端证书并通过 https 编写肥皂请求。代码的编译版本是在 IIS 5.0 中运行的 DLL。在我的本地机器上测试代码后,它工作正常(我在代理后面)。但是在将代码部署到 prod 服务器(不是代理)之后,SSL 连接失败并显示“与 SSL 连接时出错”。

这是我的代码:

我也尝试将此代码编译成exe程序并且它可以工作。还有什么我需要配置/添加的吗?

谢谢。

0 投票
4 回答
1049 浏览

delphi - 使用 TIdFTP 的应用程序未从 Delphi 5 迁移到 Delphi 2009...损坏的上传

我编写了一个使用 TIdFTP 的 Delphi 5 应用程序。多年来它一直很好用。它的唯一目的是上传一个excel文件。

我最近迁移到 delphi 2009,因为我重新加载了我的机器并且 delphi 5 现在已经消失了。

该应用程序看起来仍然可以正常工作,但是在 1.5 MB 文件的大部分过程中,该文件已损坏。看起来字节已被删除,并且上传的文件比原始文件短(大约 200 字节)。

我的第一个想法是传输类型,所以我将其设置为二进制,但除此之外,我不知道。

有任何想法吗?

谢谢你!mp

0 投票
2 回答
4056 浏览

delphi - 从 URL 加载图像 - 如果图像不存在如何捕获异常

我的问题与我询问的关于从 URL 加载图像的另一个问题有关。下面的代码有效。但是,如果我尝试获取图像(假设存在)但显然已被删除,我遇到了问题。应用程序不知道并返回错误。有没有办法通过捕获传入的错误来防止它。我将不胜感激任何建议。它发生在他的行:

谢谢,克里斯

0 投票
2 回答
621 浏览

delphi - 从在 delphi-7 和 indy 客户端 9 中开发的 activex 通过 ssl 连接到 pop3 时缺少 ssl 库?

我正在使用 indy 客户端(v.9)开发一个带有 delphi 7 的 activexform,以通过 ssl 连接到 pop3。不幸的是,当我在网络浏览器中加载 activex 时,它告诉我它找不到 SSL 库(ssleay32、libeay32)。
有谁知道我该如何解决这个问题?

(或者是否有人知道通过 ssl 从必须在 Internet Explorer 窗口中运行的应用程序连接到 pop3 的任何其他方法?)

米歇尔

0 投票
2 回答
4176 浏览

delphi - TIdTCPServer 有时不从套接字读取数据

我在 TIdTCPServer 的 OnExecute 中有以下代码(安装随附的 Delphi 2009 和 Indy 10),这与本网站上的其他示例非常相似;

它有时不会读取数据,因为 CheckForDataOnSource(10) 返回 False。但是,如果我在该行停止调试器,我可以看到我在 InputBuffer 的字节中发送的数据。是否有任何其他设置我应该做的事情或其他方法来强制它一直工作。此代码运行了很多次,但在 CheckForDataOnSource(10) 上总是失败。

另外作为旁注,我注意到在 Indy 的代码中,有些人抓住了 AContext.Connection.IOHandler 而不是 AContext.Connection.Socket 并做与上面的代码相同的事情,什么是“正确”的使用。

谢谢

布鲁斯

0 投票
2 回答
1661 浏览

delphi - 线程应用程序中的 Indy 错误!

当它在 GET 之后等待服务器的响应并且线程被终止时,我有一些与 TidHTTP 相关的内存泄漏。

例子 :


当应用程序关闭时,我用这个停止线程:

我应该怎么做才能解决内存泄漏?

谢谢 :)