delphi网络文件传输控制例程

delphi网络文件传输控制例程

ID:8969515

大小:78.50 KB

页数:6页

时间:2018-04-13

delphi网络文件传输控制例程_第1页
delphi网络文件传输控制例程_第2页
delphi网络文件传输控制例程_第3页
delphi网络文件传输控制例程_第4页
delphi网络文件传输控制例程_第5页
资源描述:

《delphi网络文件传输控制例程》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、【程序说明】P2P(点对点)的流行产生了大批网络传输软件,这里我们要介绍的就是自己写一个简单的P2P文件传输,一方发送文件,一方接受,直到传输完整个文件。程序运行效果如图所示。服务器端:图8.5.1客户端:图8.5.2由服务器端负责发送文件,客户端接受。【编程思路】利用TCP协议连接双方,服务器端建立文件流读入待发送文件进入监听状态,客户端发送信号开始传输,服务器根据客户端发送的当前文件流传输位置按接收缓冲区大小一块一块的发送给客户端,客户端接受后再保存到接收文件流,直到整个文件流发送完毕,这里服务器端使用TIdTCPServe

2、r组件,客户端对应的使用TIdTCPClient组件。【编程步骤】1.启动Delphi7,建立一个标准的Application,首先我们来做服务器端,。2.按图放置如下组件:图8.5.3将项目保存Server目录下,取名为Server.dpr,单元取名为U_Server.pas。3.然后我们再来看看客户端,这里由于我们实际上是做了两个程序(服务器端和客户端),因而引入一个新的概念:项目组(ProjectGroup),使用项目组我们很方便的同时调试两个以上的程序,也因为如此,我们上面才需要更改项目名,单元名以区分服务端和客户端,使

3、用项目组功能首先我们找到DELPHI的IDE菜单的View项,打开ProjectManager(Ctrl+Alt+F11)即可看到一个项目组管理窗口,其中已经有我们刚才建立的Server.exe了,现在我们New新建一个标准的Application项目,按照下图放置组件:图8.5.4将项目保存在Client目录下,取名Client.dpr,单元名U_Client.pas,现在我们可以看到,项目组窗口中多了一个Client.exe项目,其中项目名黑色加粗表示当前激活的项目。以上组件除了Tlabel组件、Tbutton组件修改标题和

4、StatusBar1修改SimplePanel为True外全部使用默认属性,属性列表我们这里就省略了。4.编写代码:首先来看服务器端,浏览文件将文件名传给Edit1:procedureTfrm_Server.Button1Click(Sender:TObject);beginifOpenDialog1.ExecutethenEdit1.Text:=OpenDialog1.FileName;end;然后进入传输状态:procedureTfrm_Server.Button2Click(Sender:TObject);beginifn

5、otFileExists(Edit1.Text)then//检测文件是否存在beginShowmessage('文件不存在,请选择文件!');exit;end;//建立文件流AFileStream:=TFileStream.Create(Edit1.Text,fmOpenRead);ProgressBar1.Max:=AFileStream.Size;//初始化进度条的最大值ProgressBar1.Position:=0;ButtonBegin;//VCL开始状态设置//服务器准备好连接IdTCPServer1.Default

6、Port:=StrToIntDef(Edit2.Text,9925);ifnotIdTCPServer1.ActivethenIdTCPServer1.Active:=True;end;其中IdTCPServer1.Active:=True即让服务器端听入监听状态,结束后取消此状态,实际上我们也可以程序一运行就让他开始监听,在进入监听状态前我们首先要设置服务器监听使用的端口:IdTCPServer1.DefaultPort:=StrToIntDef(Edit2.Text,9925);这句就设置了端口为Edit2的值,转换文本到数

7、字失败就使用默认9925端口。ButtonBegin是我们自己写的一个过程,目的是改变一些按钮的可操作状态,例如传输过程中不允许在选择文件等:procedureTfrm_Server.ButtonBegin;begin//VCL开始状态设置Button1.Enabled:=False;//不可浏览Button2.Enabled:=False;//不可发送Button3.Enabled:=True;//可以取消Button4.Enabled:=False;//不可退出end;这种方法在组件很多,需要限定很多组件的状态时可以使程序可

8、读性更好,也方便多次调用,同样后面用到的ButtonEnd过程也是一样,在取消按钮代码中:procedureTfrm_Server.Button3Click(Sender:TObject);beginStatusBar1.SimpleText:='传输取消...

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。