gpt4 book ai didi

delphi - Delphi中发送和接收数据流

转载 作者:行者123 更新时间:2023-12-02 06:19:40 25 4
gpt4 key购买 nike

我想创建一个软件来连接到另一个程序并通过互联网将一些数据(基于文本)发送到另一个程序。

软件将每300毫秒发送一次数据(使用定时器),接收方必须按时接收数据。

连接可以如下所示

  1. 任何数据都可能丢失;
  2. 但其余人员必须准时到达,延迟时间尽可能短(最多 2 秒);
  3. 延迟的数据可视为丢失,可以忽略。

我认为它可能类似于视频 session 软件,但仅使用简单的文本作为数据。

谁能具体告诉我如何制作这样一个程序

  • 我可以使用哪种组件(任何 INDY 示例);
  • 您推荐哪些技术。

我计划用 Delphi 来做,但也欢迎其他推荐。

============================更新1 =================

是否可以通过流发送图像

最佳答案

我建议使用 UDP 协议(protocol)并向数据添加时间戳信息并跟踪接收端的传入数据。您可以使用 Indy 或其他软件包中的 UDP 服务器 (TIdUDPServer) 和客户端 (TIdUDPClient) 组件。客户端组件用于发送数据,服务器组件用于接收数据。

我个人通常更喜欢 Synapse -classes 。它们的级别比 Indy 低,因此更容易知道发生了什么,但另一方面,您可能需要自己实现 Indy 默认提供的东西。

更新

实现非常简单:

发送数据:

将 TIdUDPClient 拖放到表单上。将“主机”设置为接收端的名称或 IP 地址(如果您在同一台计算机上运行程序,则为“localhost”)并将端口设置为服务器监听的高编号,例如 54656。

将以下代码添加到按钮或计时器事件:

IdUDPClient1.Send('Hello, world!');

接收数据:

将 TIdUDPServer 组件拖放到表单上。将默认端口设置为与发送应用程序中相同的端口。添加OnUDPRead事件处理程序,代码:

MessageDlg('Received: ' + StringOf(AData), mtInformation, [mbOk], 0);

每次收到新消息时都会弹出新消息对话框。

更新2

UDP 不适用于图像,如果您想确保图像不被损坏,除非图像非常小并且适合一个数据包。

关于delphi - Delphi中发送和接收数据流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7819743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com