下载工具的设计与开发毕业论文(编辑修改稿)内容摘要:
fo[IdInfoTaskID].filename,CFile::modeWrite|CFile::shareDenyNone)。 AfxParseURL((LPCTSTR)(pViewm_taskdowninfo[IdInfoTaskID].url),dwServiceType,strServer, strObject, nPort)。 pRequestHeader = ((LPTSTR)(LPCTSTR)strServer,(LPTSTR)(LPCTSTR)strObject,nLength,NULL,NULL,pViewm_taskdowninfo[IdInfoTaskID].ThreadDownInfo[IdInfoThreadID].FromBytes,pViewm_taskdowninfo[IdInfoTaskID].ThreadDownInfo[IdInfoThreadID].ToBytes,0,NULL)。 DownloadFileSeek(pViewm_taskdowninfo[IdInfoTaskID].ThreadDownInfo[IdInfoThreadID].FromBytes,CFile::begin)。 //设置文件指针位置 */ ()。 ((LPTSTR)(LPCTSTR)strServer,nPort)。 ()。 pResponseHeader=()。 int nSvrState = ()。 CString csState。 分布式下载工具的设计与开发 19 (%d,nSvrState)。 csState=(1)。 if(csState==2) { char pData[5024]。 //用于存放接收数据的字符数组 long nReceSize = 0。 //实际接收数据的长度 (服务器返回来的值 ) CString fpath。 long rsize,sendsize。 rsize=0。 sendsize=0。 long nsize。 char buf1[5024]。 nsize=pViewm_taskdowninfo[IdInfoTaskID].ThreadDownInfo[IdInfoThreadID].ToBytespViewm_taskdowninfo[IdInfoTaskID].ThreadDownInfo[IdInfoThreadID].FromBytes。 while(rsizensize) { nReceSize = (pData,5024)。 if(nReceSize=0) { ()。 //没有可以接收的数据 ,关闭 Socket AfxMessageBox(没有可接收的数据 )。 break。 //return while(TRUE) ! } DownloadFileWrite(pData,nReceSize)。 rsize=rsize+nReceSize。 pViewm_taskdowninfo[IdInfoTaskID].finishsize+=nReceSize。 } DownloadFileClose()。 20 pViewm_taskdowninfo[IdInfoTaskID].ThreadDownInfo[IdInfoThreadID].FinishFlag=true。 ::PostMessage(pViewm_hWnd,WM_SENDDATA,0,(long)amp。 IdInfo)。 } return 0。 } 2. 连接其他用户代码 UINT CHttpDowndLoad::MTConnectThread(LPVOID pParam) { //得到视图类的指针 // CDownLoadView* dlv。 CMDIFrameWnd *pFrame = (CMDIFrameWnd*)AfxGetApp()m_pMainWnd。 // Get the active MDI child window. CMDIChildWnd *pChild=(CMDIChildWnd *) pFrameGetActiveFrame()。 // Get the active view attached to the active MDI child window. POSITION pos=pChildGetActiveDocument()GetFirstViewPosition()。 CDownLoadView *pView=(CDownLoadView*)pChildGetActiveDocument()GetNextView(pos)。 IDInfo *IdInfo。 IdInfo=new IDInfo。 IdInfo=(IDInfo*)pParam。 char buf[1024]。 sockaddr_in addr。 = i_addr(pViewm_taskdowninfo[IdInfoTaskID].UserDownInfo[IdInfoThreadID].UserIP)。 =AF_INET。 =LOCAL_PORT。 WSADATA wsaData。 WSAStartup(0x101,amp。 wsaData)。 分布式下载工具的设计与开发 21 SOCKET g_ConnectSocket。 g_ConnectSocket = socket(AF_INET, SOCK_STREAM,0)。 if(g_ConnectSocket==INVALID_SOCKET) { return 1。 } if(connect(g_ConnectSocket,(sockaddr*)amp。 addr,sizeof(addr))==1) { AfxMessageBox(无法连接到客户机 )。 return 1。 } pViewm_taskdowninfo[IdInfoTaskID].UserDownInfo[IdInfoThreadID].s=g_ConnectSocket。 CString temp,finishsize,fromsize。 (%d,pViewm_taskdowninfo[IdInfoTaskID].UserDownInfo[IdInfoThreadID].FromBytes)。 (%d,pViewm_taskdowninfo[IdInfoTaskID].UserDownInfo[IdInfoThreadID].ToBytes)。 temp=URL:。 temp+=pViewm_taskdowninfo[IdInfoTaskID].url。 temp+=lfromsize:。 temp+=fromsize。 temp+=lfinishsize:。 temp+=finishsize。 temp+=。 strcpy(buf,temp)。 int slen。 slen=0。 int tlen。 tlen=()。 22 while(slentlen) slen+=send(g_ConnectSocket,buf,tlen,0)。 CString temp2。 int rlen2。 char buf2[100]。 rlen2=0。 while(true) { rlen2=recv(g_ConnectSocket,buf2,100,0)。 temp2=buf2。 if((cmd:recv)=0) { break。 } else if((cmd:end)=0) { closesocket(g_ConnectSocket)。 ::PostMessage(pViewm_hWnd,WM_CHANGEUSR,(long)IdInfo,0)。 return 0。 } else { CString speed2,finishsize2,time2。 ParseBuf2(buf2,finishsize2,speed2,time2)。 pViewm_taskdowninfo[IdInfoTaskID].UserDownInfo[IdInfoThreadID].Rate=finishsize2。 pViewm_taskdowninfo[IdInfoTaskID].UserDownInfo[IdInfoThreadID].Speed=speed2。 分布式下载工具的设计与开发 23 pViewm_taskdowninfo[IdInfoTaskID].UserDownInfo[IdInfoThreadID].Time=time2。 } } CFile* rfile。 //打开在 StartHttpDownLoad()中创建的文件 rfile=new CFile。 rfileOpen(pViewm_taskdowninfo[IdInfoTaskID].savepath+pViewm_taskdowninfo[IdInfoTaskID].filename,CFile::modeWrite|CFile::shareDenyNone)。 rfileSeek(pViewm_taskdowninfo[IdInfoTaskID].UserDownInfo[IdInfoThreadID].FromBytes,CFile::begin)。 //设置文件指针位置 long rlength,len,buflen,startsize。 rlength=0。 char buf1[5024]。 while(rlengthpViewm_taskdowninfo[IdInfoTaskID].UserDownInfo[IdInfoThreadID].ToBytespViewm_taskdowninfo[IdInfoTaskID].UserDownInfo[IdInfoThreadID].FromBytes) { len=recv(g_ConnectSocket,buf1,5024,0)。 rfileWrite(buf1,len)。 rlength+=len。 pViewm_taskdowninfo[IdInfoTaskID].finishsize+=pViewm_taskdowninfo[IdInfoTaskID].finishsize。 } rfileClose。 return 0。 } 3. 点对点互传代码 UINT CHttpDowndLoad::SendFile(LPVOID pParam) { //得到视图类的指针 24 // CDownLoadView* dlv。 CMDIFrameWnd *pFrame = (CMDIFrameWnd*)AfxGetApp()m_pMainWnd。 // Get the active MDI child window. CMDIChildWnd *pChild=(CMDIChildWnd *) pFrameGetActiveFrame()。 // Get the active view attached to the active MDI child window. POSITION pos=pChildGetActiveDocument()GetFirstViewPosition()。 CDownLoadView *pView=(CDownLoadView*)pChildGetActiveDocument()GetNextView(pos)。 ConnectInfo *ConInfo。 ConInfo=(ConnectInfo *)pParam。 long FileSize。 long ReadSize。 long SendSize。 long TempSize。 CString temp。 CString SFileSize。 char buf[128]。 char data[5*1024]。 CFile pFile。 if((ConInfoPath,CFile::modeRead|CFile::shareDenyNone)) {。下载工具的设计与开发毕业论文(编辑修改稿)
相关推荐
行消失。 因为这样,支架的质量随着时间的延长而降 低,在控制腐蚀速率和降解速率的同时,允许机械载荷逐渐转移到周围的组织上去。 因此镁合金是最具有前景的可降解血管支架材料 [9]。 对于镁合金来说, 细化晶粒是一种可以同时提高力学性能和腐蚀性能的有效方法。 特别是随着大塑性变形技术的快速发展,利用大塑性变形技术获得的亚微米级别的超细晶组织( UFG)展现了良好的力学性能和腐蚀性能。 由
的同学,也都能针对不同学院做出更为真实准确的调查结果。 (第二批) 表 18 大学采取不公布本专业所有同学成绩排名的观点统计表 赞成 反对 中立 2 40 8 4% 80% 16% (第二批) 表 19 不赞成的原因是因为它不利于学生学习成绩的提高的统计表 是此原因 不是此原因 中立 43 2 3 % % % (第二批) 表 110 是否认为公布 大学生成绩排名属于侵犯自己的隐私的统计表 是 否
他保护相配合;对非全电缆线路 ,还相应配置了三相一次自动重合闸装置 ,保证在馈线发生瞬时性故障时 ,快速恢复供电 ,提高系统供电的可靠性 ,然而 ,由于电缆线路的故障大多数是永久性故障 ,所以自动重合闸装置对电缆线 路不适应 [25]。 沈阳农业大学学士学位论文 7 (l)电流速断保护 所谓电流速断保护是指仅反应电流增大而能瞬时动作切除故障的保护 ,也称为无时限电流速断保护 (电流 I 段 )。
处表现为 :(1) 立法宗旨均是为了调整不动产的相邻关系 , 使相邻利害关系人得以和睦相处 , 实现不动产利用价值。 (2) 内容范围有重合 , 两者共同点是他们“皆以不动产权利的扩张或限制为其内容。 ” ② 相邻不动产不仅受相邻权的法定限制 ,也受权利人设定地役权的限制 , 如各国民法典都用条文形式规定了土地通行、流水 、排水关系 , 越界建筑问题 , 建筑物的通风、日照妨害以及煤气、噪音
深圳市地震基本烈度评定结果的通知》,本项目所在区域位于抗震设防烈度 7 度区,设计地震分组为第一组,设计基本地震加速度值为。 建筑材料与运输条件 1) 建筑材 料 项目 周边 有 建筑所需的砖、沙、水泥等建筑材料供应,可就近选择建筑材料供应商提供建筑材料。 2)工程用水、用电 本项目所在区域电力充足。 另外 ,本项目所在区域通讯、水利等方面也比较发达,设施齐全。 大鹏办事处 下沙 社区消防 “
电,低压线路由渔村低压出线柜引入,受电距离约 200 米。 主要工程量 项目防波堤、码头工程及配套设施主要土建工程量见表 61。 主要工程量表 表 61 项目 单位 工程量 突堤式防波址 机械土方开挖 (沟槽 ) m3 干砌块石(挡墙) m3 干砌块石(基础) m3 抛石 m3 抛乱石 m3 碎石垫层 m3 砂碎石路面 m3 1419 浆砌条石 m3 1419 给排水 m 500 电力 m