文件传输程序设计.doc
《文件传输程序设计.doc》由会员分享,可在线阅读,更多相关《文件传输程序设计.doc(12页珍藏版)》请在一课资料网上搜索。
1、Internet网络程序设计实验报告基于Socket的文件传输程序设计姓名:莫 敌班级:软件 0904学号:U200917895指导老师:陆永忠2012.03.31目 录1实验目的及要求21.1实验目的21.2实验要求22实验环境33实验程序设计33.1设计思想33.2程序设计流程框图43.3详细设计53.3.1界面设计53.3.2主要功能实现63.4运行结果94实验感想111 实验目的及要求1.1 实验目的熟悉Socket的通讯机制,了解网络程序的设计方法。重点掌握基于TCP协议的Socket网络编程。1.2 实验要求设计界面,在服务器端和客户端传输图片和文件。如果是图片请显示该图片,如果是
2、其他文件,则保存。2 实验环境编译环境:Windows 7 + Visual Studio 2010 使用MFC编写。运行环境:Windows 7操作系统。3 实验程序设计3.1 设计思想根据实验的要求:在服务器和客户端之间传输文件和图片,则需要程序提供一种可靠的网络传输服务来保证文件在传输过程中无丢失、损坏。在分析了传输层协议TCP协议和UDP协议后,了解到TCP协议提供的是一种面向连接的、可靠的字节流服务,而UDP协议提供的是一种无连接的、不可靠的数据报服务。由于程序的需求,即必须保证文件传输的可靠性,于是,我采用基于TCP协议的Windows sockets来设计实现本实验。3.2 程序
3、设计流程框图创建新的通信端点将一个本地地址关联到套接字上宣布接受连接,给出监听队列大小阻塞,直到有客户企图连接发送/接受数据释放连接结束开始主动尝试建立一个连接创建新的通信端点发送/接受数据释放连接结束开始服务器端客户端图1程序设计流程框图3.3 详细设计基于TCP的socket编程流程:服务器端: 创建套接字(socket)。 将套接字绑定到一个本地地址和端口上(bind)。 将套接字设为监听模式,准备接收客户端请求(listen)。 等待客户端请求到来。当请求到来后,接收连接请求,返回一个新的对应于此次连接的套件字(accept)。 用返回的套接字和客户端进行通信(send/recv)。
4、返回,等待另一客户端请求。 关闭套接字。客户端: 创建套接字(socket)。 向服务器发出连接请求(connect)。 和服务器端进行通信(send/recv)。 关闭套接字。3.3.1 界面设计图2程序界面由于程序实现的功能单一简单,所以我的程序界面设计如图2所示。程序由两个用户可操作的控件组成:IP地址控件,用户输入将要接收文件的接收方IP地址;“发送文件”按钮,单击选择用户要发送的文件并发送所选文件数据。3.3.2 主要功能实现套接字库加载:AfxSocketInit()接收线程:UINT RecvProc( LPVOID pParam )while (TRUE)CSocket tmp
5、Sock;CSocket servSock;tmpSock.Create(5000);tmpSock.Listen(1);tmpSock.Accept(servSock);char fileNameRecv500 = 0;int a = servSock.Receive(fileNameRecv, 500);CFileDialog saveDlg(FALSE, NULL, NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, 所有文件(*.*)|*.*|);saveDlg.m_ofn.lpstrFile = fileNameRecv;if (IDOK = sa
6、veDlg.DoModal()CFile recvFile;CString recvPathName;recvPathName = saveDlg.GetPathName();recvFile.Open(recvPathName, CFile:modeCreate | CFile:modeWrite);UINT uiLength;servSock.Receive(&uiLength, 4);int iBufSize = 1024 * 5;int iSize = iBufSize;LPBYTE pBuf = new BYTEiBufSize;int iNumByte;UINT uiTotal =
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 文件传输 程序设计
