电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

vc+++网络文件传输VIP免费

vc+++网络文件传输_第1页
1/23
vc+++网络文件传输_第2页
2/23
vc+++网络文件传输_第3页
3/23
掌握实现网络文件传输的方法,并了解TCP 连接是字符流的 1. 使用CSocket 实现单线程文件传输 2. 应用多线程技术结合CAsyncSocket 实现文件传输 3. 加入异常控制语句,增强程序的鲁棒性(Robust) 4. 了解如何提高套接字传输的速率及如何加强传输的稳定性 ·单线程文件传输: 在第一章中曾经讲过用windows socket 传输数据的方法,本章的单线程文件传输实验要在这个基础上融入文件操作,以实现基本的文件传输。 ·多线程文件传输: 在文件传输程序中,一个线程是一个搬运工,负责把文件数据从网络(看作是一条走廊)的一个端点搬到另一个端点;使用多线程,就相当于请了多个搬运工来做这项工作,效率自然会提高。但是有一个疑问:“既然多个工人一起搬会提高工作进度,那是不是人越多越好呢?”——当然不是。因为既然把网络看成一条走廊,那么当走廊中拥满了人的时候,这些人就成了搬运工作的瓶颈。所以选择一个适当的线程数,对多线程传输的性能(传输速率)会有重要的影响(这一问题还会在后面探讨)。 由于多线程文件传输的实现涉及线程的同步的问题,所以实现和调试起来都有一定的困难。但应当相信这是一项有趣的工作,因为多线程技术能把局域网传输的潜力充分的挖掘出来! 建议读者再看实验步骤之前,先阅读一下文章末尾的【注意事项】一节。这将有助于更好的理解本章的实现。 一.单线程文件传输 (I): · 服务器端(负责发送数据)的实现 1. 建立一个基于对话框的工程Server,并在建立的过程中选择支持windows socket。 2. 在对话框上添加“发送”按钮。 3. 为“发送”按钮添加事件BN_CLICKED 的响应函数OnSend()。 void CServerDlg::OnSend() { // TODO: Add your control notification handler code here CFileDialog fd(TRUE); // CFileDialog 是MFC 提供的一个用于选择文件的对话框类 CString filename; char fn[40]; CSocket listenSocket, socketSend; CFile file; long FileLength; char* data; if(IDOK==fd.DoModal()) // 启动用于选择文件的对话框 { //选择了文件 filename=fd.GetFileName(); // 获取用户选择的文件的文件名 if(!file.Open(filename.GetBuffer(0),CFile::modeRead| File::typeBinary)) { AfxMessageBox(" 打开文件错误,取消发送!"); return; } strcpy(fn,filename.GetBuffer(0)); } else return; //按了取消按钮 li...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

vc+++网络文件传输

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部