问题标签 [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.
delphi - 终止来自 TIdTCPServer 的非活动套接字连接
我们有一个应用程序,它使用 Delphi 2007 附带的 Indy 10.1.1 组件侦听传入的 TCP 请求。
有时我们会收到不是来自客户端应用程序的传入连接。通常,会发生以下两种情况之一:1)客户端在接收到任何数据之前终止连接,或 2)接收到我们不期望的数据并且我们手动终止连接。
但是,我们收到了没有接收到数据的连接,并且似乎一直存在,直到客户端从其端终止连接。
如果在指定的时间后没有收到数据,有没有办法终止与服务器的这种连接?
indy - Incy IdDayTime 连接问题
我在 Delphi 5 Enterprise 下创建了一些使用某种自制许可证文件的软件。许可证会在一定时间后过期,以防止进一步使用。由于很容易在 PC 上调整任何所需的日期,因此我正在尝试连接到 Internet 时间服务器。
我尝试了在互联网上找到的几个代码,没有一个有效。我最后一次尝试是安装 Indy 组件并使用一些简单的代码,如下所示:
IdDayTime1.Host := .... 所需的时间服务器 IdDayTime1.Connect; Label1.Caption := IdDayTime1.DayTimeStr; IdDayTime1.断开连接;
我总是无法连接到时间服务器。这发生在不同的网络区域(在工作中,在家里,......),即使所有典型的互联网软件(如 firefox,IE,......)在所有这些网络中都运行良好。所以我肯定有一个适当的互联网连接。
我的问题可能是什么原因?我是否必须定义一些特殊的细节,如端口或某事。别的 ?
提前感谢您的帮助
delphi - Delphi Indy:第一次无法加载 SSL 库。重试工作
我正在使用最新的 indy 快照(昨天安装)和最新的 SSL 库。
尝试使用 idSMTP 发送邮件时,组件第一次连接时,出现异常:
无法加载 SSL 库
. 有趣的是,重试总是有效的。调试发现问题出在 IsSSLOpenSSLHeader, function Load: boolean, line
为什么它第一次失败而不是第二次失败对我来说仍然是一个谜,但在我继续调查之前,我想好像有人知道这个问题的解决方案。
delphi - tidhttp 获取程序在某些 url 上不起作用
我在 delphi Tidhttp 组件中遇到问题,其中 GET 过程无法获取特定的 url,但在其他 url 上它正在工作。示例:此代码返回一个空的 response.datastring。Response.datastring 仅在此 error_url 时为空,但对于其他 url,response.datastring 具有值。我需要获取那个 error_url 的内容来解决这个问题。
顺便说一下 idHTTP1 重定向属性在这里设置为 true 所以重定向不是问题。
这是我遇到的异常:1. http/1.1 302 Found 2. EDecompressionError with message 'ZLib Error (-3)'
您可以在此链接http://www.yourfilelink.com/get.php?fid=534933下载此项目的源代码(即 indytest.zip)
请帮帮我。提前致谢 :)
delphi - 如何使用 Indy 的 smtp 服务器组件发送邮件?
由于http://www.indyproject.org/Sockets/Demos/index.EN.aspx中给出的演示只将接收到的流保存到一个文件中,我不知道如何有效地将该流作为邮件发送。
谁能教我如何做到这一点或给我一些更完整的例子?
delphi - 使用 Indy 接收到的奇怪的罕见乱序数据
我们在 Indy10 中遇到了一个奇怪的问题,我们使用 TCP 一个接一个地发送的两个大字符串(每个几百个字符)在另一端奇怪地交织在一起。这种情况极少发生。
每个字符串都是以 LF 结尾的完整 XML 消息,通常 READ 进程读取整个 XML 消息,并在看到 LF 时返回。
实际发送消息的调用受到对 IOHandler 的 writeln 方法调用的关键部分的保护,因此两个线程不可能同时发送。(我们确定关键部分已实现/正常工作)。这个问题很少发生。症状很奇怪......当我们发送字符串 A 后跟字符串 B 时,我们在另一端收到的(在我们遇到故障的极少数情况下)是字符串 A 本身的尾随部分(即, 末尾有一个 LF),然后是字符串 A 的前导部分,然后是整个字符串 B,然后是一个 LF。我们已经验证在部分读取后“超时”属性不正确 - 我们在每次读取返回内容后记录该属性。此外,我们知道字符串中没有嵌入的 LF 字符,因为我们在附加 LF 并发送它之前用空格显式替换字符串中的所有非字母数字字符。
我们在传输端和接收端的关键部分都有日志机制,因此我们可以在“线路”处看到这种行为。
我们完全困惑并想知道(尽管总是最低可能性)是否可能存在一些可能导致此问题的低级 Indy 问题,例如,缓冲区以错误的顺序发送......很难相信这可能是这个问题,但我们正在抓住稻草。
有没有人有什么好主意?
delphi - Thunderbird 中的 Indy IdSMTP 和附件
在 D2010 上使用 Indy tiburon 的最新快照。一个非常简单的项目,例如:
在 Outlook、The bat!、OE、yahoo 等中一切正常……但在 Thunderbird 中,附件未显示。在 Thunderbird 中查看消息的来源,附件就在那里。我可以发现 indy 和其他客户端发送的消息之间的唯一区别是 Indy 消息具有以下顺序:
而任何其他客户都有订单:
不知道这是否是问题的根源,但如果是这样:这是 Thunderbird 上的错误还是 indy 的问题,它“畸形”了消息的标题?这个订单有问题吗?这有关系吗?
delphi - 将文件从我的应用程序 (Indy/Delphi) 发送到 ASP 页面,然后发送到另一台服务器 (Amazon S3)
我需要在 Amazon AWS S3 上存储文件,但为了将用户与 AWS 身份验证隔离开来,我想通过我网站上的 ASP 页面进行访问,用户将登录该页面。所以:
应用程序使用 Delphi Indy 库 TidHTTP.Put (FileStream) 例程将文件连同查询字符串上的一些身份验证内容(我的,不是 AWS)一起发送到 ASP 页面。
ASP 页面检查身份验证详细信息,然后如果确定,则使用我的 Amazon 帐户将文件存储在 S3 上。
我遇到的问题是:如何在 ASP 页面中使用 JScript 访问来自 Indy PUT 的数据并将其传递给 S3。我对 AWS 签名等没问题,这只是连接这两个位(传入请求和传出 AWS 请求)的具体细节......
TIA R
c++builder - TCP 套接字异常断开和写入超时
我会尽量用最短的语言来解释这个问题。我正在使用 c++ builder 2010。
我正在使用 TIdTCPServer 并将语音数据包发送到连接的客户端列表。一切正常,直到任何客户端异常断开连接,例如电源故障等。我可以通过切断连接客户端的以太网连接来重现类似的断开连接。
所以现在我们有一个断开连接的套接字,但你知道它在服务器端还没有检测到,所以服务器也会继续尝试向那个客户端发送数据。
但是,当服务器尝试向断开连接的客户端写入数据时……Write() 或 WriteLn() 在尝试写入时挂起,就像在等待某种写入超时。这会挂起空洞数据包分发过程,从而在向所有其他客户端的数据传输中产生延迟。几秒钟后,“套接字连接已关闭”异常被引发并且数据流继续。
这是代码
好的,我已经有一个保持活动机制,可以在 n 秒不活动后断开套接字。但是你可以想象,这个机制仍然不能与这个广播循环完全同步,因为这个广播循环几乎一直在运行。
那么我可以通过 iohandler 或其他方式指定任何写入超时吗?我已经看到很多关于“检测断开的 tcp 套接字”的线程,但我的问题略有不同,我需要在写入尝试期间避免挂断几秒钟。
那么有什么解决办法吗?
或者我应该考虑对这种数据广播使用一些不同的机制,例如广播循环将数据包放在某种 FIFO 缓冲区中,客户端线程不断检查可用数据并挑选并将其传递给自己?这样,如果一个线程挂起,它将不会停止/延迟整个分发线程。
请问有什么想法吗?感谢您的时间和帮助。
问候
果酱
delphi - 哪个更适合 pbx 事件,TIdTCPServer 还是 TIdTCPClient?
我正在尝试一些 IP PBX 系统,Asterisk、Freeswitch 和 Yate,以注册 PBX 中的事件,我想知道这些组件中哪个更好。
该组件应该向 PBX 注册事件,接收它们,发送一些响应并发出一些命令。两者哪个更合适?