问题标签 [indy10]
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 - UDP 数据包未被 Wireshark 捕获,但被 UDP 应用程序捕获
我有一个设计和工作的应用程序在端口上接收 UDP 广播。该应用程序一直运行良好,但我想将应用程序接收到的数据包与 Wireshark 捕获进行比较。我试图确保以最小的数据丢失捕获尽可能多的数据包。
我最初以为我会运行 Wireshark 并将捕获的原始数据包与我们的应用程序中显示的数据包进行比较。但是,当我运行 Wireshark 时,永远不会在该端口的 IP 层捕获数据包。我看到来自服务器的其他流量,但我从未看到此特定端口的 Wireshare 数据包。
应用程序继续捕获数据就好了。当我查看 IP src/dest 字段时,src 看起来是正确的,10.12.10.42,但是目标 IP 地址是 0.0.0.0。我本来希望用 255.255.255.255 代替目标地址。
我无权访问正在广播数据的应用程序,但我确实编写了一个快速示例 UDP 广播器和接收器,以确保我的期望是正确的。示例应用程序按预期工作。
关于为什么应用程序会收到 UDP 广播但不会出现在 Wireshark 捕获中的任何想法?Wireshark 是否会忽略像 0.0.0.0 这样的地址而不是全部捕获?
delphi - 尝试开始另一个上传后,Indy FTP 客户端上升错误?
这是大部分代码。我希望在 1 上传完成时再启动另一个,但是这段代码似乎会出现错误 10048。
- 将文件和命令序列上传到服务器是否正确?
- 为什么这个错误 10048 正在上升,以及如何解决它?
stream - Indy 10 读写流的问题
我正在尝试使用在通过网络发送之前转换为流的集合在 IdTCPServer 和 IdTCPClient 之间交换数据。不幸的是,无论我如何尝试,我似乎都无法在客户端和服务器之间传递流。代码始终挂在IdTCPClient1.IOHandler.ReadStream(myStream, -1, True)行上。
我的代码的相关部分如下所示:
客户端
服务器端
非常感谢您在解决此问题方面的帮助。
谢谢,
丹尼尔
delphi - Incorrect boundary string in multipart/mixed message
I'm using Delphi 2006 to create and send an email message with an attachment in a personal-use-only application. I send the message with an instance of TIdSMTP, and then also put a copy into a specific IMAP folder with an instance of TIdIMAP4. This all works very nicely with the version of Indy 10 that was distributed with BDS2006, with one exception: the time is always incorrect in the email header.
I decided to fix that if I could, and after searching for a solution it seemed most reasonable to get the latest Indy 10 snapshot and use that.
That puts the correct time into the email header, but there's a new problem. The boundary string is now different in the header of the message that is added to the IMAP folder than what comes in the body of the email! (Please note that the message that was sent via SMTP is correct.)
This is the relevant header information from the older version of Indy 10:
And this is the same header information from Indy 10.5.8 (snapshot 10_4702 which I installed yesterday):
The time stamp is fixed, but now the boundary string is incorrect. The result is that there appears to be nothing at all in the message that gets added to my IMAP folder.
Here is the relevant code that creates the email message and attachment, sends it, and puts a copy into the IMAP folder:
As I said, the email that gets sent is fine and displays properly. But the one that is added to my IMAP folder (in FImap.AppendMsg() above) is incorrect. I've attempted to trace through the code to see where it might be going wrong, but frankly, I'm not familiar enough with Indy and the various email protocols/RFCs to be able to determine what's going wrong. About all I can tell is that the older version saves the message to a temporary file before appending it to the folder, while the newer version saves it to a memory stream instead. Obviously, something is different about that, but I'm currently too ignorant to determine what.
Is there a simple way to correct the timestamp problem in the old version? If so, that would be fine for my use, as everything else appears to be correct. If not, what else do I need to do to fix the problem exhibited here with the incorrect boundary string?
(As this is an application strictly for my own use, I can live with the incorrect date if I have to, but not with the "empty-appearing" copy in my 'Sent Items' folder.)
If more information is needed, I'll gladly supply whatever I can.
[Edit: I did incorporate something of a kludge in MY code, using the older version of Indy. I simply set the date/time of the message to UTC/GMT time before sending it, and that, at least, allows the message to contain the correct time at the receiver's end. I don't particularly care for that fix, but it does the trick.]
delphi - Delphi中的无连接TCP客户端服务器应用程序
我正在创建一个客户端服务器应用程序来连续流式传输图像,以像视频流式传输应用程序一样工作。
客户端应用程序有一个计时器,每 300 毫秒计时一次,以向服务器发送请求,服务器回复图像。
实现工作正常,但一段时间后(〜5分钟或更长时间后)两个应用程序都冻结而没有任何错误消息(但我很少收到消息说系统资源不足)
之前情况更糟(大约 15 秒后冻结),但我改变了idtcpserver1.terminatewaittime to 10 (from 5000 defalt)
现在它发生在 5 分钟后。
我不明白为什么会发生错误,但我很确定使用基于计时器的请求并不好。
我可以将 tcpserver 转换为不可靠的无连接协议以使其更快并减少请求压力。
但我不想使用 UDP,因为它无法检测到损坏错误(但我不需要更正,我只想知道是否有任何错误(忽略整个图像))
仅提供与 Indy 相关的源代码,其他源代码被保留
=============== 在 Remy Lebeau 之后更新 - TeamB 和 Arnaud Bouchez 回答 ===========
感谢冻结是由于在某些情况下无法访问图像造成的。他们提到的工具帮助我找到了问题
但是主要问题还是没有解决
我可以将 tcpserver 转换为不可靠的无连接协议以使其更快并减少请求压力。
delphi - 如何在 ListView 中存储标识符与客户端连接 - Indy 10
我正在创建一个接收多个客户端并且必须能够向每个客户端发送消息的 TCP 服务器。
如何获取客户端连接的句柄,然后发送任意数据?
感谢:D
代码:
delphi - 客户端作为服务器的 Indy TCP 客户端/服务器
Indy'sTIdTCPClient
和如何TIdTCPServer
在以下场景中使用:
客户端启动连接,但充当“服务器”(等待命令并执行它们)。
的OnExecute
方法TIdTCPServer
在这种情况下效果不佳(至少我没有让它运作良好)。我怎么能这样做?
我希望这个问题足够清楚。
delphi - Indy 10 Delphi FTP 客户端演示错误
我是 Delphi 的新手,想尝试分解一个演示以了解它的结构。
我正在尝试让 Indy 10 Delphi FTP 客户端演示在 Delphi XE2 上运行。
每当我运行下载的代码时,我都会输入 FTP URL、用户名、密码等,当 FTP 连接时出现此错误:
引发异常类 $C00000005 并带有消息“在 0x0018f90e 处的访问冲突:写入地址 0x0000000”
我认为这意味着它指向一个空值?
调试工具简单点在这一行..
消除此错误(尝试/捕获)的最佳方法是什么,或者是否有我可以查看的 Delphi FTP 程序的工作示例?
提前感谢您的时间,
苏菲
程序如下:
我假设站点数组确实包含详细信息,因为在错误出现之前 ftp 确实连接到存储的 ftp 站点的名称...
delphi - IdHTTP.get 返回 HTTP1.1/ 403 Forbidden
我正在尝试使用 DelphiXE 编译程序和 IdHTTP 组件访问我网站上的 update.txt 文件。
我正在使用的代码如下:
然而,这会导致错误:HTTP1.1/ 403 Forbidden
IdHTTP 组件已设置有以下属性。
如果我在 IE 浏览器中输入 URL,它会返回没有错误的文件,但是从我的程序访问时,我会收到错误消息。任何指针将不胜感激。.htaccess 对于该站点是正确的。该文件的权限在网站上是正确的:0644。
我是否必须为 IdHTTP 组件设置任何其他属性。我在 about 表单上只有这个组件。我还需要什么吗。
updateinfo.txt 文件只包含引号中的文本:“18.3.5,2011/12/17”
我在这里简单地使用了“测试”来代替我的实际程序名称和 URL。
问候阿德里安
delphi - 使用 Indy 发送邮件而不使用外部服务器
我的应用程序使用 Indy TiDSMTP 客户端组件发送电子邮件。然而,在某些情况下,客户无法或不愿意设置 SMTP 服务器和端口、用户名等,因此我想提供一种无需任何人设置任何东西即可发送电子邮件的解决方案。
我尝试了 TIDSMTPRelay 演示,但我需要明确输入 DNS 服务器 IP 地址(当我这样做时,它在“Project SMTPRelay.exe 引发异常类 EIdHostRequired 并带有消息''”时失败)。我希望有一个不需要用户输入任何设置的 Indy 解决方案——只要他们可以访问互联网,它就可以“开箱即用”。
我还需要提供什么?
TIA,R