【发布时间】:2013-02-10 07:45:49
【问题描述】:
我正在编写一个通过局域网计算机传输文件的程序,我正在寻找Delphi中的文件传输方法已经有一段时间了。我发现 UDP 是一个很好的解决方案,但是有一个问题:在每个示例或文章中,我发现在服务器程序旁边有一个客户端程序,但是我的程序必须向/从网络中的每台计算机发送和接收,没有特定的服务器或客户端,例如p2p,我不想让一台计算机服务器和另一个客户端,我该怎么办?我也搜索了 Indy 文章,它也在服务器/客户端模式下工作(据我所知)。
【问题讨论】:
-
这并不意味着你必须编程,只是你需要在你的程序中有两个组件,例如TIdUDPClient + TIdUDPServer。
-
不过,您的问题尚不清楚 - 如果您想使用 UDP 发送文件,则必须在另一端等待接收它们。如果您只是想复制文件,则不需要 UDP 或其他任何东西;您可以在机器之间复制文件。你能准确解释一下你想要做什么吗?
-
@Ken,我想发送(正如你在每次发送中所说的那样,必须在另一端等待),问题也正是在这里,它并不总是“computer_A”发送和“ computer_B”接收,有时“B”发送,“A”接收,有时“C”发送,“B”接收,....所以我不能说“A”总是听而“B”总是发送,情况会改变。
-
为什么要使用 UDP?您是否特别需要 UDP 提供的功能(例如广播功能)?对于某些应用程序,UDP 比 TCP 更好(例如:VoIP),因为它缺乏传输控制,并且应用程序可以处理网络延迟和抖动,但是对于文件传输,您需要传输控制协议.如果您通过 UDP 执行此操作,您肯定会自己重新实现整个 TCP!
-
@Cosmin,这是一个很好的提示,谢谢。不,UDP 没有特定的需求,在我的搜索中我发现它更容易处理。你有什么建议? TCP 与 Indy?它是否满足我的需求(我放置的图表图像是我正在寻找的)
标签: delphi delphi-xe3