欢迎来到天天文库
浏览记录
ID:27803230
大小:100.00 KB
页数:8页
时间:2018-12-06
《网络与通信实验报告2》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、《网络与通信》课程实验报告实验2:Socket通信编程姓名院系计算机学院学号任课教师钱权指导教师钱权实验地点行健楼603实验时间一3-4实验课表现岀勤、表现得分(10)实验报告得分(40)实验总分操作结果得分(50)实验目的:1.掌握Socket编程过程;2.编写简单的网络应用程序。实验内容:利用你选择的任何一个编程语言,分别基于TCP和UDP编写一个简单的Client/Server网络应用程序。具体程序要求参见《实验指导书》。要求以附件形式给出:•系统概述:运行环境、编译、使用方法、实现环境、程序文件列表等;•主要数据结构;•主要算法描述;•用户使用手册;•程
2、序源代码;实验要求:(学生对预习要求的回答)(10分)得分:•Socket编程客户端的主要步骤•Socket编程服务器端的主要步骤实验过程屮遇到的问题如何解决的?(10分)得分:问题1:在编写Socket程序时如何使客户端与服务端建立连接?在Socket的服务器端口,建立一个死循环,不断的监听客户端所发送的connect()请求,当有相应的请求到來时,建立连接,退出死循环。问题2:连接简历后如何传送字符传?通过Socket自带的send()和receive()函数,实现客户端与服务器的信息交流发送。在设置相应的一对发送函数时,要注意相对应的函数循序,否则可能导致
3、死锁。问题3:在己成功发送数据之后,出现receive()函数返回值为0。在完成发送之后,如果调用close()函数,则相关的发送字节数将被清零。本次实验的体会(结论)(10分)得分:通过这次对Socket的编程,我对Socket的工作原理有了更深入的认识与理解,并提高了自身的编程水平,同时在学习能力上有了更大的进步。通过这次的学习与认知,基本已经常握并能较为熟练的编写socket程序,虽然过程中遇到了不少问题,但是,对自身的提高还是益处良多的。思考题:(10分)思考题1:(4分)
4、得分:你所用的编程语言在Socket通信屮用到的主要类及其主要作用。在这次的编写
5、Socket程序中,主要用到了java语言,实现了对Socket的定义到连接再到通信的全过程。思考题2:(6分)得分:说明TCP和UDP编程的主要差异和特点。TCP是有连接传送方式,在进行通信之前,需要先建立连接,相关信息交流函数为send()和receive(),其中不用给出相应的发送或接收地址。UDP是无连接传送方式,在通信之前无需建立连接,相关的交流函数为sendto()和receivefrom(),其中需要给出相应的发送或接收地址。指导教师评语:日期:程序源代码:TCP:packagetcp;importjava.net.*;importjava.io.
6、*;importjava.util.*;publicclassClient{publicstaticvoidmain(String[]args)throwsIOException{Sockets=newSocket(Hlocalhost",30000);Stringflag=Scannerscan=newScanners.getInputStream());if(scan.hasNextLine()){flag=scan.nextLine().trim();}if("ok".equals(flag)){Filefile=newFile(Md:\a.txtM);
7、if(!file.exists()
8、
9、!file.isFile()){System.out.println("File""+args[2]+"Vdoesnotexistorisnotanormalfile/1);System.exit(O);}DataOutputStreamout=newDataOutputStream(s.getOutputStream());out.writeUTF(naaaaaaaaaaaaaaM);out.writeLong(file.length());FilelnputStreamin=null;try{in=newFilelnp
10、utStream(file);bytef]buffer=newbyte[1024*8];intlen=System.out.println("Filetansferstart...");while((len=in.read(buffer))!=-1){out.write(buffer,0,len);}System.out.println("Filetansfercomplete...");)catch(Exceptione){System.out.println("EiTor:”+e.getMessage());System.exit(l);}finally{t
11、ry{if(in!=nu
此文档下载收益归作者所有