下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 飞鸽传书(二级实践课题任务书)

飞鸽传书(二级实践课题任务书).doc

飞鸽传书(二级实践课题任务书)

黄鸿鸽
2017-10-26 0人阅读 举报 0 0 暂无简介

简介:本文档为《飞鸽传书(二级实践课题任务书)doc》,可适用于IT/计算机领域

飞鸽传书(二级实践课题任务书)二级实践课题设计任务书姓名题目类似飞鸽传书的局域网设计一个在局域网内部聊天的软件类似于QQ用户之间的聊天具有文字聊天传文件文件夹的功能便于用户之间的交流开发主要功能包括:(局域网内系统它在局域网内选择相应的用户以便对之发送文字信息。(上线提醒即时提醒并显示在线用户上线好友设(修改昵称在TEXTBOX中输入修改的名称点击右键确定就会在好友列表上即时显计示修改后的名称更便于好友的查找交流。任务(文件文件夹传输系统它是在先把需要传输的文件文件夹转换成相应的数据流传输到了目的主机再由之还原。本系统的文字聊天系统实现的功能类似于QQ用户之间的聊天开发工具:MicrosoftVisualStudio第周(~):按照老师的指导讨论项目需求和所要实现的功能写出课题的计划书并进行任务规划根据数据库设计划分功能模块对项目进行分工划分各自任务。时第周(~):主要是对系统的测试以及纠错加强对软件的功能设计间添补遗漏界面在最后一周做了很大的变动使之更加完善简化了管理的操作且更加的进度清晰明了写出初步的文档。。第周(~):调试成功后经过老师的再次检验经过讨论后对个别功能进行逐步细化和改善最后进行整理将程序上交给老师验收通过后完成文档。马煜陈海军朱朝阳VisualC#NET案例开发锦集电子工业出版社李春葆、谭成予、金晶、曾平C#程序设计教程北京:清华大学出版社原主始要资参料考与文献指导教师签字:年月日摘要网络通讯在当今已经不算新鲜事物随着计算机网络技术的发展各种各样基于网络的应用也随之诞生比如基于互联网的信息发布通信数据共享等等局域网的发展也同样迅速很多政府机构企业学校都是先以一个统一的局域网连接在一起再分别接入INTERNET因为大多数网络通讯都需要借助INTERNET上的服务器这就给那些具有大规模内部网络的用户造成了许多问题如浪费网络资源遭遇到网络攻击传播的病毒破坏防御系统等等。由于互联网上的网络通讯工具给企业内部信息交流带来了不便所以为了方便内部网络用户之间的沟通需要开发一个基于局域网的信息收发系统的即时通讯工具是现在内部网络中进行信息的交流。本课题设计主要针对局域网通讯而开发设计的采用的是CS构架类似飞鸽传输系统来实现聊天文件传输功能并借助一些网络通讯组件。成功的实现了再局域网上的即时通讯。本论文的目标是设计一个类似飞鸽传输的局域网通信软件并分析它在其领域ng()")"DateTimeNowToShortDateString()trecText="rn>"romeCon界面的处理newmsgSendToBack()tsendHeight=tsendTop=返回一个确认接收包mySendDatacommandNo=xmySendDatafromIP=myIPmySendDatacomputerName=myNamemySendDatatoIP=romeIPmySendDatacontent="ready!"bytesendb=StructToBytes(mySendData)SendPack(sendb)复位文件标志isfile=""曹章恒:实验室设备管理系统同时开启线程开始监听Threadmyrecv=newThread(newThreadStart(listenPort))myrecvStart()return}elseif(isfile=="wenjian"){当传送的含有文件时saveFileDialogFilter="所有格式|**"saveFileDialogFileName=romeFileNameif(saveFileDialogShowDialog()==DialogResultOK)savePath=saveFileDialogFileNameelsereturntrecText="消息来自"romeName"("romeIPToString()")"DateTimeNowToShortDateString()trecText="rn>"romeCon界面的处理newmsgSendToBack()tsendHeight=tsendTop=返回一个确认接收包mySendDatacommandNo=xmySendDatafromIP=myIPmySendDatacomputerName=myNamemySendDatatoIP=romeIPmySendDatacontent="ready!"bytesendb=StructToBytes(mySendData)SendPack(sendb)复位文件标志isfile=""同时开启线程开始监听Threadmyrecv=newThread(newThreadStart(listenPor))myrecvStart()return}trecText="消息来自"romeName"("romeIPToString()")"DateTimeNowToShortDateString()trecText="rn>"romeConmySendDatacommandNo=xmySendDatatoIP=romeIPmySendDatacontent="信息被打开~"bytesendb=StructToBytes(mySendData)SendPack(sendb)曹章恒:实验室设备管理系统newmsgSendToBack()}实现过程选中对方主机名和昵称从而获取对方的IP地址向对方发送命令x并获取到文件夹下的所有文件名以为间隔符连接在一块然后把每个文件内容转化成文件流数组把文件个数每个文件的大小以及文件的名字发送给对方当对方接收到命令开启文件夹监听线程。当点击接受时返回一个x命令当本地接收到一个命令后启动文件夹发送线程并把数组文件流以比特转化成网络流发送给对方的监听线程会监听到该端口号网络流以比特的形式转化成文件流当转化的比特与该文件的大小相等时结束本文件的写入进入下一文件的内容转换最终把所有文件转化成文件及内容。曹章恒:实验室设备管理系统第章结束语在编程过程中我认识到了:虽然我们做的实验室设备系统最终完成了达到了课题的要求但却存在着许多的不足保密工作文件文件夹的传输拒绝方面聊天记录的保存代码部分有很大的不足,语句过于繁琐,没有突出程序的简易性,并且我们在在界面上未改变。还有就是开始时界面过多通过不断的改善才是系统变得简单易操作这些问题最终导致了我们所做的实验室设备管理系统没有充分的体现出它应有的优越性如查找方便可靠性高存储量大保密性好寿命长成本低管理自动化的需求在做课题的过程中我们遇到了重重的困难这时才发现自己的知识是那么的匮乏只是面试那么的狭隘并且还缺少一定的实践能力。但是通过查阅资料一点一点的从头学起请教老师和同学进行讨论自我摸索一次次的修改调试一次次的重新来过最终功夫不负有心人所有的问题都解决课题最终顺利通过为了顺利通过课题我们尽可能多地运用所学知识点灵活完成编码通过问题分析和任务定义做课题锻炼了我们的分析问题的能力通过逻辑设计体现我们的抽象能力通过详细设计和程序编码体现我们解决问题的能力通过程序调试与测试体现我们动手能力通过结果分析体现我们认识问题的能力通过编写课题设计报告体现我们书写程序文档的能力。感悟:平时的学习我觉得有必要调整一下如果能像做课题那样高度集中精力运用各种方法上网查询请教老师请教同学不断的完善自己的知识拓展自己的知识面熟练地掌握程序设计方法和思想认真的做好每个细节有方向有目的去培养自己的程序设计能力和软件工程能力发挥自己的创造力来分析问题、解决问题。我相信在四年里我可以学到很多走得更远。一分耕耘一分收获。我会走向成功。最后感谢老师的指导和帮助让我们能够顺利的完成这次任务。曹章恒:实验室设备管理系统参考文献马煜陈海军朱朝阳VisualC#NET案例开发锦集电子工业出版社李春葆、谭成予、金晶、曾平C#程序设计教程北京:清华大学出版社曹章恒:实验室设备管理系统指导教师评语成绩:指导教师签名:年月日曹章恒:实验室设备管理系统附录B:主要源程序namespacepro{publicpartialclassForm:Form{publicForm(){InitializeComponent()SystemWindowsFormsControlCheckForIllegalCrossThreadCalls=false}stringpath="MyTesttxt"publicboolruning=false标志publicUdpClientlisten=newUdpClient()publicIPEndPointEndpublicIPAddressgroupAddress=IPAddressParse("")广播地址publicintgroupPort=广播端口publicIPAddressmyIPpublicstringmyNamepublicsendDatamySendData=newsendData()本地的号命令发送包publicstringromeNamepublicIPAddressromeIPpublicstringromeConpublicstringisfile传送文件标志publicstringsavePath传文件的保存地址publicstringromeFileName远程文件名publicstringromeFilel远程文件用单位表示的长度格式为M或KpublicFileStreamsendfilestream=newFileStreampublicFileStreamsendfilestrea发送文件流publicstructsendData{publicbytecommandNopublicbytecommandNo命令号字节publicIPAddressfromIP发送端IP字节publicintnameLength名字的字节数字节publicstringcomputerName计算机名x字节publicIPAddresstoIP接收端IP字节publicstringcontent内容y字节曹章恒:实验室设备管理系统publicintninamelengthpubliclongtexbigpublicintcountstringtexnamepublicpublicinttexnamelengthpublicstringniname}List<sendDat>send=newList<sendDat>()privatevoidFormLoad(objectsender,EventArgse){myretexbig=newlongmyretexname=newstringEnd=newIPEndPoint(groupAddress,groupPort)和端口初始化计算机名IPHostEntrymyentry=DnsGetHostByName(DnsGetHostName())myIP=newIPAddress(myentryAddressListAddress)myName=DnsGetHostName()listBoxItemsAdd("主机名昵称")开启监听线程runing=trueThreadmyThread=newThread(newThreadStart(thisListenPort))myThreadIsBackground=truemyThreadStart()发送上线信息mySendDataniname=""{FileStreamfs=FileOpenRead(path)StreamReadersr=newStreamReader(fs)while(srPeek()>)mySendDataniname=srReadLine()srClose()fsClose()}mySendDatacommandNo=mySendDatacommandNo=xmySendDatafromIP=myIPmySendDatacomputerName=myNamemySendDatatoIP=myIPmySendDatacontent="上线提示"mySendDatatexbig=mySendDatatexname=""mySendDatatexnamelength=曹章恒:实验室设备管理系统mySendDatacount=bytesendb=StructToBytes(mySendData)SendPack(sendb)}publicvoidListenPort(){listBoxItemsClear()sendClear()IPEndPointtempEnd=newIPEndPoint(IPAddressAny,)while(runing){ApplicationDoEvents()if(thisIsDisposed)breaktry{byterecb=listenReceive(reftempEnd)检查所接收到的信息and处理之checkMessage(recb)}catch(Exceptione){MessageBoxShow("出现错误:"eMessageToString())break}}listenClose()listBoxItemsAdd("线程已经退出~")runing=false}publicvoidSendPack(bytesendbs){listBoxItemsClear()try{listenSend(sendbs,sendbsLength,End)}catch(Exceptione){曹章恒:实验室设备管理系统MessageBoxShow(eMessageToString())}}inttcount=staticintfl=,fy=publiclongap=newlongpubliclongaq=newlongpublicstaticbyteStructToBytes(sendDatastructObj){bytecommandb=newbytecommandb=structObjcommandNobytecommandb=newbytecommandb=structObjcommandNobytefromipb=structObjfromIPGetAddressBytes()bytenameb=EncodingDefaultGetBytes(structObjcomputerName)bytelengthb=BitConverterGetBytes(namebLength)bytetoipb=structObjtoIPGetAddressBytes()bytecontentb=EncodingDefaultGetBytes(structObjcontent)byteninamea=EncodingDefaultGetBytes(structObjniname)bytenilegth=BitConverterGetBytes(ninameaLength)bytetextname=EncodingDefaultGetBytes(structObjtexname)bytetextnamelength=BitConverterGetBytes(textnameLength)bytetextbig=BitConverterGetBytes(structObjtexbig)bytetextcount=BitConverterGetBytes(structObjcount)bytebuffer=newbytenamebLengthcontentbLengthninameaLengthtextnameLengthintindex=commandbCopyTo(buffer,index)index=commandbLengthcommandbCopyTo(buffer,index)index=commandbLengthfromipbCopyTo(buffer,index)index=fromipbLengthlengthbCopyTo(buffer,index)index=lengthbLengthnamebCopyTo(buffer,index)index=namebLengthnilegthCopyTo(buffer,index)index=nilegthLengthninameaCopyTo(buffer,index)index=ninameaLengthtoipbCopyTo(buffer,index)曹章恒:实验室设备管理系统index=toipbLengthtextnamelengthCopyTo(buffer,index)index=textnamelengthLengthtextnameCopyTo(buffer,index)index=textnameLengthtextbigCopyTo(buffer,index)index=textbigLengthtextcountCopyTo(buffer,index)index=textcountLengthcontentbCopyTo(buffer,index)returnbuffer}publicsendDatsedata=newsendDat()publicstringnamestringstrrstringstrrintcoun=publicvoidcheckMessage(byterecbb){listBoxItemsClear()sendDatarecData=BytesToStruct(recbb)if(recDatacommandNo==x){fl=strr=RegexSplit(recDatacontent,"")strr=RegexSplit(recDatatexname,"")coun=recDatacountromeName=recDatacomputerNameromeIP=recDatafromIPromeCon=recDatacontentname=recDataniname}elseif(recDatacommandNo==x){fy=romeName=recDatacomputerNameromeIP=recDatafromIPromeCon=recDatacontentname=recDataniname}else{曹章恒:实验室设备管理系统romeName=recDatacomputerNameromeIP=recDatafromIPromeCon=recDatacontentname=recDataniname}if(recDatacommandNo==x){if(recDatatoIPEquals(myIP)){if(listBoxFindString(recDatacomputerName""recDataniname)<=){sendDatsedata=newsendDat()listBoxItemsAdd(recDatacomputerName""recDataniname)sedataniname=namesedatafromIP=romeIPsedatacomputerName=romeNamesendAdd(sedata)}}elseif(recDatafromIPEquals(recDatatoIP)){sendDatsedata=newsendDat()从其他机器发送过来的刷新请求返回自己的信息mySendDatacommandNo=xmySendDatatoIP=recDatatoIPmySendDatacontent="上线提示"bytesendb=StructToBytes(mySendData)SendPack(sendb)如果不存在则添加该用户if(listBoxFindString(recDatacomputerName""recDataniname)<=){上线提示f=new上线提示()textBoxText=recDataninameToString()ftextBoxText=recDataninameToString()fOwner=thisfShow()ThreadSleep()曹章恒:实验室设备管理系统listBoxItemsAdd(recDatacomputerNameToString()""recDataniname)sedataniname=namesedatafromIP=romeIPsedatacontent=romeConsedatacomputerName=romeNamesendAdd(sedata)fClose()buttonClick(,)textBoxText=""}}if(recDatacommandNo==x){listBoxItemsRemove(recDatacomputerName""recDataniname)}}switch(recDatacommandNo){casex:发言{当传送的不包含文件时才显示“有新消息了”showNe()}breakcasex:请求传文件if(recDatatoIPEquals(myIP)){准备接收文件readyRecFile()}breakcasex:传文件if(recDatatoIPEquals(myIP)){传送文件Threadmysend=newThread(newThreadStart(sendFile))mysendStart()}breakcasex:传文件if(recDatatoIPEquals(myIP)){传送文件Threadmysen=newThread(newThreadStart(sendFil))mysenStart()曹章恒:实验室设备管理系统}breakcasex:{(listBoxFindString(recDatacomputerName""recDataniname)>=)if{listBoxItemsRemove(recDatacomputerNameToString()""recDataniname)}if(listBoxFindString(recDatacomputerName""recDatacontent)<=){listBoxItemsAdd(recDatacomputerNameToString()""recDatacontent)}}breakcasex:请求传文件if(recDatatoIPEquals(myIP)){准备接收文件romeFileName=romeConSplit('')romeFilel=romeConSplit('')readyRecFile()}breakcasex:用户离线if(listBoxFindString(recDatacomputerName""recDataniname)>=){if(recDatacomputerNameToString()==myNamerecDataniname==name){Formf=newForm()fClose()}elselistBoxItemsRemove(recDatacomputerNameToString()""recDataniname)}breakcasex:确认包曹章恒:实验室设备管理系统if(recDatatoIPEquals(myIP))MessageBoxShow("信息来自:"recDatacomputerName"("recDatafromIPToString()")rn"recDatacontent,"消息")break}}inttexcount=publicstaticsendDataBytesToStruct(bytebytes){sendDatamyre=newsendData()myrecommandNo=bytesmyrecommandNo=bytesbyteipb=newbyteArrayCopy(bytes,,ipb,,)myrefromIP=IPAddressParse(ipByteToString(ipb))myrenameLength=BitConverterToInt(bytes,)myrecomputerName=EncodingDefaultGetString(bytes,,myrenameLength)myreninamelength=BitConverterToInt(bytes,myrenameLength)myreniname=EncodingDefaultGetString(bytes,myrenameLength,myreninamelength)ArrayCopy(bytes,myrenameLengthmyreninamelength,ipb,,)myretoIP=IPAddressParse(ipByteToString(ipb))myretexnamelength=BitConverterToInt(bytes,myrenameLengthmyreninamelength)myretexname=EncodingDefaultGetString(bytes,myrenameLengthmyreninamelength,myretexnamelength)myretexbig=BitConverterToInt(bytes,myrenameLengthmyreninamelengthmyretexnamelength)myrecount=BitConverterToInt(bytes,myrenameLengthmyreninamelengthmyretexnamelength)myrecontent=EncodingDefaultGetString(bytes,myrenameLengthmyreninamelengthmyretexnamelength,bytesLengthmyrenameLengthmyreninamelengthmyretexnamelength)returnmyre}publicstaticstringipByteToString(byteipbt){stringtemp=""temp=(int)ipbt""(int)ipbt""(int)ipbt""(int)ipbtreturntemp}privatevoidlistBoxSelectedIndexChanged(objectsender,EventArgse){if(listBoxSelectedItemsCount!=)曹章恒:实验室设备管理系统{listBoxContextMenuStrip=contextMenuStrip}}privatevoid重命名ToolStripMenuItemClick(objectsender,EventArgse){if(FileExists(path)){FileDelete(path)}FileStreamfs=FileOpenWrite(path)StreamWritersw=newStreamWriter(fs)swWriteLine(textBoxText)swClose()fsClose()buttonClick(,)}privatevoidbuttonClick(objectsender,EventArgse){listBoxItemsClear()listBoxItemsAdd("主机名昵称")mySendDatacommandNo=xmySendDatacommandNo=xmySendDatafromIP=myIPmySendDataniname=""{FileStreamfs=FileOpenRead(path)StreamReadersr=newStreamReader(fs)while(srPeek()>)mySendDataniname=srReadLine()srClose()fsClose()}mySendDatatoIP=myIPmySendDatacontent="上线提示"bytesendb=StructToBytes(mySendData)SendPack(sendb)}清空privatevoidbuttonClick(objectsender,EventArgse){曹章恒:实验室设备管理系统tsendText=stringEmptytrecText=stringEmpty}发送消息voidbuttonClick(objectsender,EventArgse)private{if(listBoxSelectedItemsCount==||listBoxSelectedIndex==){MessageBoxShow("请选择一个用户~~~")return}传文件if(tsendText==""comboBoxText=="文件夹")Text!=""){需要传文件首先发送号命令要求对方准备接收stringsp=RegexSplit(strr,"")for(intn=n<tcounttn){sendfilestreamn=newFileStream(spn,FileModeOpen,FileAccessRead)}longfilelength=sendfilestreamLengthstringtotalstepsinttempif(filelength(*)>){文件>M时用M做为进度最小单位temp=(int)(filelength(*))totalsteps=temp"M"}else{小于M的文件用k做为最小单位temp=(int)(filelength)totalsteps=temp"K"}用做接收端时的公共变量保存发送的临时值romeFilel=totalstepsstringfilename=PathGetFileName(tfilepText)mySendDatacommandNo=xmySendDatacount=tcounttmySendDatacontent=strmySendDatatexname=strrmySendDatafromIP=myIPmySendDatacomputerName=myNamefor(inti=i<listBoxItemsCounti)曹章恒:实验室设备管理系统{stringstr=RegexSplit(listBoxSelectedItemToString(),"")if(sendicomputerName==strToString()){mySendDatatoIP=sendifromIP}}bytesendb=StructToBytes(mySendData)SendPack(sendb)tsendHeight=tsendTop=comboBoxText=""if(tsendText==""){return}界面上的处理}(comboBoxText=="文件"tfilepText!="")if{需要传文件首先发送号命令要求对方准备接收sendfilestrea=newFileStream(tfilepText,FileModeOpen,FileAccessRead)longfilelength=sendfilestreaLengthstringtotalstepsinttempif(filelength(*)>){文件>M时用M做为进度最小单位temp=(int)(filelength(*))totalsteps=temp"M"}else{小于M的文件用k做为最小单位temp=(int)(filelength)totalsteps=temp"K"}用做接收端时的公共变量保存发送的临时值romeFilel=totalstepsstringfilename=PathGetFileName(tfilepText)mySendDatacommandNo=xmySendDatafromIP=myIPmySendDatacomputerName=myName曹章恒:实验室设备管理系统for(inti=i<listBoxItemsCounti){stringstr=RegexSplit(listBoxSelectedItemToString(),"")if(sendicomputerName==strToString()){mySendDatatoIP=sendifromIP}}mySendDatacontent=filename""totalsteps格式:yytxtKbytesendb=StructToBytes(mySendData)SendPack(sendb)tsendHeight=tsendTop=comboBoxText=""if(tsendText==""){return}}mySendDatacommandNo=xmySendDatafromIP=myIPmySendDatacomputerName=myNamemySendDatatexbig=mySendDatatexname=""mySendDatatexnamelength=mySendDatacount=mySendDatacontent=tsendTextfor(inti=i<listBoxItemsCounti){stringstr=RegexSplit(listBoxSelectedItemToString(),"")if(sendicomputerName==strToString()){mySendDatatoIP=sendifromIP}}bytesendb=StructToBytes(mySendData)SendPack(sendb)tsendClear()}publicvoidshowNe(){窗体显示if(thisWindowState!=FormWindowStateNormal)曹章恒:实验室设备管理系统{thisVisible=truethisWindowState=FormWindowStateNormal}有新消息了"newmsgText="newmsgBringToFront()}准备接收文件publicvoidreadyRecFile(){trecBackColor=ColorBlueif(fl==){fl=isfile="wenjianjia"}elseif(fy==){isfile="wenjian"}newmsgText=romeFileName"("romeFilel")"newmsgBringToFront()}单击显示接收的信息并隐藏自身privatevoidnewmsgClick(objectsender,EventArgse){if(isfile=="wenjianjia"){当传送的含有文件时saveFileDialogFilter="所有格式|**"saveFileDialogFileName=romeFileNamesaveFileDialogFileName=RegexSplit(strr,"")RegexSplit(strr,"")Lengthif(saveFileDialogShowDialog()==DialogResultOK){DirectoryCreateDirectory(saveFileDialogFileNameToString())}elsereturntrecText="消息来自"romeName"("romeIPToString()")"DateTimeNowToShortDateString()trecText="rn>"romeCon界面的处理曹章恒:实验室设备管理系统newmsgSendToBack()tsendHeight=tsendTop=返回一个确认接收包mySendDatacommandNo=xmySendDatafromIP=myIPmySendDatacomputerName=myNamemySendDatatoIP=romeIPmySendDatacontent="ready!"bytesendb=StructToBytes(mySendData)SendPack(sendb)复位文件标志isfile=""同时开启线程开始监听Threadmyrecv=newThread(newThreadStart(listenPort))myrecvStart()return}elseif(isfile=="wenjian"){当传送的含有文件时saveFileDialogFilter="所有格式|**"saveFileDialogFileName=romeFileNameif(saveFileDialogShowDialog()==DialogResultOK)savePath=saveFileDialogFileNameelsereturntrecText="消息来自"romeName"("romeIPToString()")"DateTimeNowToShortDateString()trecText="rn>"romeCon界面的处理newmsgSendToBack()tsendHeight=tsendTop=返回一个确认接收包mySendDatacommandNo=xmySendDatafromIP=myIPmySendDatacomputerName=myNamemySendDatatoIP=romeIPmySendDatacontent="ready!"bytesendb=StructToBytes(mySendData)SendPack(sendb)复位文件标志isfile=""曹章恒:实验室设备管理系统同时开启线程开始监听Threadmyrecv=newThread(newThreadStart(listenPor))myrecvStart()return}trecText="消息来自"romeName"("romeIPToString()")"DateTimeNowToShortDateString()trecText="rn>"romeConmySendDatacommandNo=xmySendDatatoIP=romeIPmySendDatacontent="信息被打开~"bytesendb=StructToBytes(mySendData)SendPack(sendb)newmsgSendToBack()}qstringstringpTcpListenerlistenern=newTcpListener()publicvoidlistenPort(){b=if(a==){listenernStart()}Sockets=listenernAcceptSocket()for(intn=n<counn){apn=ConvertToInt(strrn)q=RegexSplit(strrn,"")RegexSplit(strrn,"")Length""RegexSplit(strrn,"")RegexSplit(strrn,"")LengthFileStreamfilestream=newFileStream(q,FileModeOpenOrCreate,FileAccessWrite)NetworkStreamstream=newNetworkStream(s)定义缓冲区bytebb=newbyte循环读socket流tt=int进度条intstepoff=floatrecbytes=while(stepoff!=apn)曹章恒:实验室设备管理系统{接收数据stepofftt=streamRead(bb,,)filestreamWrite(bb,,tt)filestreamFlush()更新进度条}filestreamClose()}MessageBoxShow("文件接收完毕~")}inta=,b=publicvoidlistenPor(){a=if(b==){listenernStart()}Sockets=listenernAcceptSocket()FileStreamfilestrea=newFileStream(savePath,FileModeOpenOrCreate,FileAccessWrite)NetworkStreamstream=newNetworkStream(s)定义缓冲区bytebb=newbyte循环读socket流inttt=进度条intstepoffif(romeFilelromeFilelLength=='K')stepoff=elsestepoff=*inttotalste=intParse(romeFilelSubstring(,romeFilelLength))floatrecbytes=while((tt=streamRead(bb,,))!=){接收数据filestreaWrite(bb,,tt)filestreaFlush()更新进度条}filestreaClose()MessageBoxShow("文件接收完毕~")}曹章恒:实验室设备管理系统publicIPAddressgroupAddres=IPAddressParse("")publicvoidsendFile(){TcpClientserverClient=newTcpClient()serverClientConnect(romeIP,)NetworkStreamstream=serverClientGetStream()定义缓冲区bytebb=newbyte循环读文件intnumber进度条intstepoffif(romeFilelromeFilelLength=='K')stepoff=elsestepoff=*inttotalste=intParse(romeFilelSubstring(,romeFilelLength))floatsendedbytes=for(intn=n<tcounttn){while((number=sendfilestreamnRead(bb,,))!=){向客户端发送流streamWrite(bb,,number)刷新流streamFlush()进度条}sendfilestreamnClose()}streamClose()MessageBoxShow("文件传送完毕~")}publicvoidsendFil(){TcpClientserverClient=newTcpClient()serverClientConnect(romeIP,)NetworkStreamstream=serverClientGetStream()定义缓冲区bytebb=newbyte循环读文件intnumber进度条曹章恒:实验室设备管理系统intstepoffif(romeFilelromeFilelLength=='K')stepoff=elsestepoff=*inttotalste=intParse(romeFilelSubstring(,romeFilelLength))floatsendedbytes=while((number=sendfilestreaRead(bb,,))!=){向客户端发送流streamWrite(bb,,number)刷新流streamFlush()进度条}sendfilestreaClose()streamClose()MessageBoxShow("文件传送完毕~")}privatevoidbuttonClick(objectsender,EventArgse){(comboBoxText=="文件")if{openFileDialogFilter="所有文件|**|压缩文件|*rar"if(openFileDialogShowDialog()==DialogResultOK){tfilepText=openFileDialogFileName}}if(comboBoxText=="文件夹"){folderBrowserDialogShowDialog()tfilepText=folderBrowserDialogSelectedPathintfstringfilenstringfilstringfileestringfileaif(!DirectoryExists(tfilepText))MessageBoxShow(textBoxText"文件夹不存在","信息提示",MessageBoxButtonsOK)else{filen=DirectoryGetFiles(tfilepText)曹章恒:实验室设备管理系统fil=RegexSplit(tfilepText,"")filee=filfilLengthfor(f=f<=filenLengthf){tigui(filenf)filea=StringFormat("{}t{}{}",fileni,FileGetCreationTime(fileni),fileatt(fileni))}}}}privatevoidFormFormClosed(objectsender,FormClosedEventArgse){runing=falsemySendDatacommandNo=xmySendDatafromIP=myIPmySendDatacomputerName=myNamemySendDatatoIP=myIP{stringstr=RegexSplit(listBoxItemsToString(),""){mySendDataniname=strToString()}}mySendDatacontent="离线提示"bytesendb=StructToBytes(mySendData)SendPack(sendb)}inti=stringstrstringstr=""intcccount=publicstringtigui(stringstr){if(DirectoryExists(str)!FileExists(str)){}else{str=str曹章恒:实验室设备管理系统}if(DirectoryExists(str)!FileExists(str)){for(intk=k<DirectoryGetFileSystemEntries(str)Lengthk){str=DirectoryGetFileSystemEntries(str)kif(FileExists(str)!DirectoryExists(str)){}else{str=str}tigui(str)}}就是文件夹。else{tcounttFileInfofi=newFileInfo(str)str=str""fiLengthToString()strr=strr""str}returnstr}inttcountt=stringstr,str,strr,strrprivatestringfileatt(stringfilename)获取文件属性{stringfa=""switch(FileGetAttributes(filename)){caseFileAttributesArchive:fa="存档"breakcaseFileAttributesReadOnly:fa="只读"breakcaseFileAttributesHidden:fa="隐藏"break曹章恒:实验室设备管理系统caseFileAttributesArchive|FileAttributesReadOnly:fa="存档只读"breakcaseFileAttributesArchive|FileAttributesHidden:fa="存档隐藏"breakcaseFileAttributesReadOnly|FileAttributesHidden:fa="只读隐藏"breakcaseFileAttributesArchive|FileAttributesReadOnly|FileAttributesHidden:fa="存档只读隐藏"break}returnfa}}

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/77

飞鸽传书(二级实践课题任务书)

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利