4

我正在编写一个通过局域网计算机传输文件的程序,我正在寻找Delphi中的文件传输方法已经有一段时间了。我发现 UDP 是一个很好的解决方案,但是有一个问题:在每个示例或文章中,我发现在服务器程序旁边有一个客户端程序,但是我的程序必须向/从网络中的每台计算机发送和接收,没有特定的服务器或客户端,例如p2p,我不想让一台计算机服务器和另一个客户端,我该怎么办?我也搜索了 Indy 文章,它也在服务器/客户端模式下工作(据我所知)。

在此处输入图像描述

4

2 回答 2

6

UDP 可以在广播模式下工作,这正是您所需要的。但是这样的 UDP 广播在当前网络之外是不可路由的(即它们被路由器阻止),所以如果您的项目需要在主要物理网络之外访问,您必须实现更复杂的东西。

不要重新发明轮子!如果您想查看一些实现此概念的工作源,请参阅Ares Galaxy

“Delphi自组织p2p网络项目,具有高规模能力和快速广播式搜索系统。客户端支持多源文件传输、部分文件共享、内置音频/视频播放器和去中心化聊天室”。

源代码文件可从 SourceForge获得。您可以根据需要重新使用/调整 P2P 网络层 - 但如果您在项目中使用它,请注意 Ares 源代码的许可条款。

于 2013-02-10T09:47:20.367 回答
4

看看印地的TIdTrivialFTPTIdTrivialFTPServer组件。 TFTP是一种基于 UDP 的文件传输协议。

于 2013-02-10T19:53:42.137 回答