问题标签 [indy-9]

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 投票
1 回答
10712 浏览

tcp - Indy TCP - 循环读取数据

TCP 服务器每 8ms 连续发送数据帧。我想编写一个能够接收这些数据帧的客户端。Indy 9 中是否有任何程序可以知道缓冲区中是否有可用数据?

我当前的程序如下(我正在使用线程):

有没有更有效的连续读取 TCP 数据的解决方案(如 UDP 中的 onread 事件)?

提前致谢。

0 投票
1 回答
2442 浏览

delphi - 将附件添加到绑定到 Evernote 电子邮件地址的电子邮件会破坏带有 Indy TIdSMTP 组件的 HTML 内容类型声明

我有一个 Delphi 6 应用程序,它生成电子邮件,我发送到我的 Evernote 电子邮件地址,这是一个用于通过电子邮件发送文档的特殊电子邮件地址,以便它们自动存储到我的 Evernote 帐户中。

我已经使用 Indy 9.x TIdSMTP组件成功创建了 HTML 文档并将它们发送到我的 Evernote 电子邮件地址。我将Content-Type设置为' text/html '。只要我不向电子邮件添加任何附件,它就可以正常工作。一旦我添加了附件,关于生成的电子邮件的某些内容就会使 Evernote 网络界面将电子邮件解释为原始 HTML. 换句话说,我在文档显示区域中看到原始 HTML,就好像我在浏览器中完成了“查看源代码”一样,而不是看到呈现的网页。我添加的电子邮件附件是一个 AVI 文件和一个 WAV 文件(如果重要的话)。当我添加附件时,它们都正确显示在 Evernote 网络显示区域的电子邮件底部。

重复一遍,只要我不添加附件,文档就会在 Evernote 网络界面中显示为漂亮的网页。如果我添加附件,我会看到原始 HTML。谁能建议我可以尝试解决此问题的方法?我在下面附上了我用来将生成的文档发送到我的 Evernote 电子邮件地址的代码。名为body的变量包含一个完全格式化的 HTML 文档。

更新:我将电子邮件发送到非 Evernote 电子邮件地址,以便我可以看到原始电子邮件消息。我发现添加附件会使 TIdSMTP 将它生成的多部分电子邮件的第一部分的 Content-Type 更改回“text/plain”,尽管事实上我在代码中将其设置为“text/html”时我创建消息。我将查看 Indy 的源代码,看看我是否能找出问题所在。

0 投票
1 回答
319 浏览

delphi - 有没有办法确保 Indy 9 套接字连接真正断开(Delphi 6 应用程序)?

我有一个 Delphi 6 应用程序,它通过套接字与外部硬件设备交换音频数据。硬件设备内部存在问题,有时其内部缓冲区处理速度会变慢,尤其是在长时间使用期间,并且令人讨厌的延迟会蔓延到音频流中。这是一个重大问题,因为音频数据经常是人们之间双向实时对话的基础。但是,断开连接并重新建立连接可以解决问题。

我知道如何用 Indy 关闭/断开套接字,这很容易。我担心如果我尝试重新连接太快,Indy 中的某些连接缓存机制或 Windows 套接字层本身可能会破坏我的断开连接。有没有办法确保与外部硬件设备的套接字连接真正断开?最好问一下,有没有办法确保我的重新连接尝试强制创建一个新的套接字(句柄?)而不是重新使用旧的套接字连接?

外部硬件设备仅在创建全新连接时“重置”,可能是因为它刷新其内部队列并重新开始(我的猜测是因为我没有设备的源代码)。

0 投票
2 回答
1788 浏览

delphi - VirtualTreeView 使用线程添加根

我想用这样的线程将根添加到 VirtualTreeView http://www.delphi-gems.com/index.php/controls/virtual-treeview :

这样做的原因是我想将我的 INDY 服务器的所有连接添加到 TreeView。Indy 的 onexecute/onconnect get 被称为线程。因此,如果同时有 3 个以上的连接进入,则应用程序会因 TreeView 而崩溃。如果客户端断开连接并且我想删除节点也是如此。

我正在使用 Delphi7 和 Indy9

任何想法如何解决?

编辑:

它适用于 ListView(至少更好)。

编辑:这是我的完整代码:

服务器:

客户(压力者):

0 投票
1 回答
1145 浏览

delphi-7 - Indy 发送文件并关闭打开的句柄

我使用此代码将文件发送到客户端。

这就像一个魅力,但如果客户端在文件发送时断开连接,Indy 会立即终止执行线程,因此文件句柄仍然打开!客户端断开连接后有没有办法关闭文件句柄?

感谢您的帮助。

0 投票
2 回答
6654 浏览

delphi - Indy 9 + Delphi 2007 最新的 SSL 库可用吗?

在使用 Delphi 2007 和 Indy 9 时,可以加载哪些最新的 OpenSSL 库以及它们在哪里可用?

0 投票
2 回答
848 浏览

delphi - Indy 9 是否与 Lazarus/Free Pascal 兼容

我正在对将 delphi 7 应用程序移植到 Free Pascal 进行可行性分析。Indy 9 是否适用于 Free Pascal?您需要特殊版本还是只需要来自 Indy svn 存储库的最新 Indy 9?还是我必须升级到 Indy 10 才能让应用程序在 Free Pascal 中运行?很明显 Indy 10 会起作用,但 Indy 9 的答案似乎有点模糊,我找不到任何关于此事的最新消息。

0 投票
1 回答
815 浏览

delphi - Delphi Indy 9 服务器端口

我一直使用 indy 9 和 Delphi 7。我现在对它有相当的经验,但想更进一步。我想听多个端口,不知道该怎么做。还有人担心我是否能够在服务器处于活动状态时添加/删除端口。所以这里有几个问题我想知道答案:

  1. 当服务器已经处于活动状态时,如何向绑定添加新端口?
  2. 当服务器已经处于活动状态时,如何从绑定中删除端口?
  3. 当我删除绑定时,Indy 如何/将如何断开客户端与端口的连接?
  4. defaultPort 属性会发生什么?

谢谢您的回答。

0 投票
1 回答
3567 浏览

delphi - 使用 TLS 的 Indy 9 SMTP 发送导致崩溃

我有一个通过 gmail 发送电子邮件的奇怪问题。我正在使用 Delphi 7 和 Indy 9 在 VirtualBox (4.2) 上运行 Windows 7 Professionel 32 位

由于 Indy 9 不支持开箱即用的 TLS,我必须自己发送 STARTTLS 命令。

这适用于小型测试邮件。带有附件的普通邮件会导致 VirtualBox 完全崩溃。没有 Windows 蓝屏。

我已经找到了一种解决方法,但它似乎很脏。如果我从 Delphi 源添加 IdSSLOpenSSL.pas 并添加 Sleep(5); 到它工作的发送功能

有没有更好的方法来解决这个问题?

如果您需要代码来设置 IOHandler

0 投票
1 回答
1282 浏览

delphi - Delphi 7 中的 Indy v9 - 当 ContentType 不是 text/plain 时如何提取 TIDMessagePart.Body 的可读文本部分

我正在尝试提取类型为 TIDText 的 TIDMessagePart 对象的 Body.Text 属性的可读部分。类似于下面的代码。但是,如果 TIDText 消息部分的 ContentType 不是 text/plain,而是 text/html,这会用所有 HTML 标记填充 sBody。我只想要可读的文本,但看不到在版本 9 库中获取它的方法。我错过了什么吗?

var email: TIDMessage; sBody:字符串;

...