Delphi编写文件传输的实现方法?

来源:百度知道 编辑:UC知道 时间:2024/05/13 18:31:37
用delphi实现类似于QQ哪样的文件传输程序,不知道用到哪个控件,如何得到对方的IP?.听朋友说还得考虑防火墙的突破问题?请大家给提点意思,推荐点方面的书籍. 谢谢!
Tcp/ip有:应用程-->传输层-->网络层-->链路层,请问如果要完成文件传输最重要的是哪层协议?

的确是很大的命题,可用于文件网络传输的控件倒是不少,得到IP地址也不难,但最重要的问题是如何避开防火墙、路由的阻拦,也就是如何穿透路由/防火墙的技术。

建议先学习下以太网方面的知识。
================================================
通常情况下,我们都应该在应用层编程。就像阳光上的桥说的一样,实现文件传输并不困难。

对于获得对方IP的观念应该纠正一下。如果通信还没有建立,你又要主动发起和对方的通讯,那么你应该首先询问对方的地址;如果已经建立了通讯,那么对方的IP你已经就是知道了的。

打个比方:你要上我家来,你又从来没来过,你就需要问我我家在哪里,你是不可能凭空知道我家住何处的;你来过我家的话,不用我说你也知道我家在哪里,除非你忘了...

另外:非法穿透防火墙/路由会给客户的系统带来安全隐患,而且对于编程来讲也是不具备广泛性和持久性的。安全漏洞迟早是会被封锁的,除非你不考虑这些因素。

我推荐用FTP-SERVER或者HTTP-SERVER控件,需要传出文件的方,临时开一个端口,启动一个HTTP-SERVER服务,把需要传出文件的标准URL用一个随机数编码,并把对应关心保存在内存里面。

如果对方同意接收文件,返回需要获取的文件的随机数,HTTP-SERVER根据随机数返回相应文件的内容。

我自己做了一个类似QQ的及时聊天软件,我用的HTTP-SERVER和HTTP-CLIENT控件,程序非常简单,也安全。但是我没有考虑防火墙等问题,对此没有经验。我的程序是DELPHI写的。