文件传输.docVIP

  • 9
  • 0
  • 约2.79万字
  • 约 30页
  • 2016-11-27 发布于河南
  • 举报
文件传输

用MFC实现局域网内点对点的大文件传输 广东省科学技术职业学院 01网络(2)班 章泽昂 相信很多人都用过QQ吧?而QQ的里面“传送文件”的功能也应该有不少的人用过吧?而关于实现文件传输的方法也有很多。趁着暑假的空闲时间,我用VC 6.0 + SP5按照自己的思路也写了一个,程序的界面如图1所示。 先给大家简单介绍一下基本的思路。这个程序所采用的是基于TCP/IP协议的Winsock编程原理,相信如果对这方面的程序设计有所了解的人都应该知道对于这种编程模型一般都是采用客户机/服务器(Client/Server)方式,在这个程序里面也正是采用这种基本的方法。为了方便使用,我把客户机和服务器合而为一,但其实质还是一样的。 在通信的时候主要可以分为两个部分,一个部分是用于传送控制信息,例如发送文件的请求,文件的名称、大小等,由于这方面的数据量比较小,为了方便起见我采用了MFC所提供的CSocket类的串行化技术来实现;而另一个部分就是文件的传输部分,对于文件的传输,由于数据量相对来说比较大,所以我分别写了两个线程,一个用于发送,一个用于接收。这两个部分在具体实现的时候分别建立有自己的套接字(Socket)。下面,就让我为大家演示一下详细的实现步骤。 一. 建立一个新工程FileTransfers 使用 MFC AppWizard (exe) 建立一个新项目FileTransfers,选择基于对话框的应用,并在向导的第四步中,选择“Windows Socket”选项,如图2所示其它步骤中都使用缺省值,然后按下“Finish”按钮,创建如图3所示属性的工程。 AppWizard将自动创建如下的类。 类名 定义文件 实现文件 CAboutDlg FileTransfers.cpp FileTransfers.cpp CFileTransfersApp FileTransfers.h FileTransfers.cpp CFileTransfersDlg FileTransfersDlg.h FileTransfersDlg.cpp 二. 修改资源 1. 修改主对话框风格 修改AppWizard为我们创建的对话框模风格。点击位于Dialog Properties对话框上面的Style标签,然后按照图4设置风格属性。 2. 添加控件 按照图1所示在对话框中加入相应的控件。 □“服务选择”分组框(Group Box)。用于表明其中的两个单选按钮是属于一组的。它的标题(Caption)为“服务选择”,使用默认的ID值就行了。 □“服务器(S)”和“客户端(C)”单选按钮(Radio Button)。这两个单选按钮定位在“服务选择”分组框(Group Box)中,用于确定软件当前是服务器或是客户端。将“服务器(S)”按钮的ID设置为IDC_RADIO_SERVER,“客户端(C)”按钮的ID设置为IDC_RADIO_CLIENT,其它的属性分别按照图5和图6所示进行设置。 □“IP地址”IP地址控件(IP Address)。当软件做为服务器端时,该控件所显示的是本地的IP地址;当软件做为客户端时,用于输入服务器的IP地址。其ID为IDC_IPADDRESS,其余属性采用默认值。 □“端口号”编辑控件(Edit Box)。用于确定通讯的端口号。所有属性均按照默认值既可。 □对话框中部分静态文本控件(Text)的属性如下所示。 ID 标题(Caption) 用途 IDC_FILE_NAME FileName 显示当前正在传输的文件名 IDC_FILE_SIZE 0 字节 显示当前正在传输的文件尺寸 IDC_RECEIVE_SIZE 0 字节 显示已经发送或接受的文件尺寸 □先删除对话框中原有的确定按钮,然后再按照图1所示添加和修改按钮的属性,最终对话框中按钮的属性如下所示。 ID 标题(Caption) 用途 IDC_BEGIN 启 动(B) 启动服务程序/连接到服务器 IDC_DISCONNECT 关 闭(D) 关闭服务程序/断开和服务器的连接 IDC_SELECT_FILE 选择文件(F) 选择要发送的文件 IDC_STOP_TR

文档评论(0)

1亿VIP精品文档

相关文档