《数据库实验报告_7.docx》由会员分享,可在线阅读,更多相关《数据库实验报告_7.docx(26页珍藏版)》请在第一文库网上搜索。
1、金隆科我学院告金实龄想告(理工类,课程名称:软件平台与中间件技术专业班级:12软件工程学生学号:1203104022学生姓名:陈圣国所属院部:软件工程学院指导教师:李晓明2015204学年第1学期金陵科技学院教务处制实验报告书写要求实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。实验报告书写说明实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。填写注意事项(1)细致观察,及时、准确、如实记录。(2)准确说明,层次清晰。(3
2、)尽量采用专用术语来说明事物。(4)外文、符号、公式要准确,应使用统一规定的名词和符号。(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。实验报告批改说明实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。实验报告装订要求实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。实验项目名称:通过SOCket技术来模拟TOmCat服务器实验学时:4学时同组学生姓名:实验地点:A203实验日期:2015.9.10实验成绩:批改教师:李晓明批改时间
3、:一、实验目的和要求(1)收悉java及javaweb开发环境的搭建;(2)收悉SoCket编程原理;(3)掌握InetAddreSS和InetSOCketAddreSS类的使用;(4)掌握JaVa多线程技术的创建与使用;(5)了解Web技术及web服务器技术;(6)掌握基于SOCket的UDP与TCP网络编程技术;(7)掌握Socket与ServerSocket的API使用;(8)掌握JaVa1o流技术;(10)通过SoCket+10+多线程+HTTP协议实现Tomcat服务器的模拟。二、实验仪器和设备主流PC机一套,要求安装windows操作系统和JDK及EC1iPSe开发工具软件。三、实
4、验过程实验任务:使用Socket技术来实现Tomcat服务器的核心功能InetAddressTes.javapackagecn.j1kj.socket;.InetAddress;.UnknownHostException;*工netAddress对象的使用:* 用来包装一个IP对应的机器对象,为后面的两种协议通信所服务(TCP,UDP)* authorAdministrator* /pub1icc1assInetAddressTest* Paramargs* (SthrowsUnknownHostException* /pub1icstaticvoidmain(Stringargs)throw
5、sUnknownHostException需求:获取本机的工P地址和淘宝的工P地址需要使用InetAdderSS类,InetAddressIoca1=InetAddress.get1oca1Host();StringIoca1Ip=Ioca1.getHostAddress();System.out.printIn(:+Ioca1Ip);InetAddressbaidu=InetAddress.getByName(ww.baidu,com);Stringbaidu1p=baidu.getHostAddress();System.out.printIn(百度的工P:+baidu1p);TCPCIi
6、ent.java:packagecn.j1kj.socket;importjava.io.IOException;importjava.io.Outputstream;.InetAddress;.Socket;.UnknownHostException;importjava.uti1.Scanner;pub1icc1assTCPC1ient* Paramargs* throwsIOException* (SthrowsUnknownHostException* /pub1icstaticvoidmain(Stringargs)throwsUnknownHostException,IOExcep
7、tionSocketsocket=newSocket(InetAddress.getByName(,192.168.1.23),8080);Scannersc=newScanner(System.in);SyStem.out.print1n(请输入你要和服务器通信的内容:);Stringmessage=1ine();Outputstreamout=socket.getutputstream();out,write(message.getBytes();out.c1ose();TCPServer.javapackagecn.j1kj.socket;importjava.io.IOExceptio
8、n;importjava.io.Inputstream;.ServerSocket;.Socket;* 基于TCP协议之间的通信,需要两端,分别是服务器端(SerVers。Cket)和* 客户端(Socket)* 在服务器端通过new方式来创建一个SerVerSOCket对象,并在创建同时,指定端口号* authorAdministrator* /pub1icc1assTCPServer* paramargs* throwsIOException* /pub1icstaticvoidmain(Stringargs)try(/创建一个SerVerSOCket对象,并绑定到一个端口ServerSo
9、cketserver=newSerVerSOCket(8080);SerVerSOCket如何来获取客户的链接?通过一个accept方法来实线,该方法返回的是代表和链接的客户端通信的SoCket对象whi1e(true)Socketc1ient=server.accept();下面就可以开始通信了,服务器端先读取客户端发送来的数据,需要获取一个输入流,该输入流可以通过S。Cket来获得InputStreamin=c1ient.get1nputstream();采用一次读一个字节数组的方式来获取数据bytebuff=newbyte1024;intIen=in.read(buff);/把波取到的数
10、据放至U字节数组中来,返回值表示真正读到的字节数获取客户端的IP:StringC1ientIP=c1ient.getInetAddress().getHostAddress();把读取到的数据转换成字符串输出SyStem.out.print1n(来自于+C1ientIP+”发送过来的数据:+newString(buff,0,Ien);释放流的资源in.c1ose();catch(Exceptione)/TODO:hand1eexception)TomcatMoni.Java:packagecn.j1kj.socket;importjava.io.IOException;.ServerSocke
11、t;.Socket;importjava.io.*;c1assTomcatimp1ementsRunnab1eprivateSocketsocket;pub1icTomcat(Socketsocket)this.Socket=Socket;gOverridepub1icvoidrun()InputStreamin=nu11;Outputstreamout=nu11;tryin=socket.get1nputstream();OUt=Socket.getutputstream();bytebuff=newbyte1024;int1en=in.read(buff);Stringrequest=ne
12、wString(buff,0,Ien);request=request.substring(0jrequest.inde0f(,rn);Stringarray=request.sp1it(,);request=array1;request=request.substring(1);System.out.printIn(request);Fi1efi1e=newFi1e(,src+request);if(fi1e.eists()Fi1eInputStreamfin=newFi1eInputStream(fi1e);whi1e(1en=fin.read(buff)0)out.write(buffj
13、0,1en);fin.c1ose();e1seStringmessage=对不起,你请求的资源过期或不存在/fontx/Center;out.write(message.getBytes();catch(IOExsptione)/TODOAuto-generatedcatchb1ocke.printStackTrace();fina11y(if(out!=nu11)tryout.c1ose();catch(IOExceptione)/TODOAuto-generatedcatchb1ocke.printStackTrace();)if(in!=nu11)tryin.c1ose();catch(
14、IOExceptione)/TODOAuto-generatedcatchb1ocke.printStackTrace();)pub1icc1assTomcatMoni*paramargs*/pub1icstaticvoidmain(Stringargs)tryServerSocketserver=newServerSocket(8080);whi1e(true)Socketc1ient=server.accept();newThread(newTomcat(C1ient).start();)catch(IOExsptione)/TODOAuto-generatedcatchb1ocke.printStackTrace();四、实验结果与分析实验结果:InetAddressTestJavaApp1icationC:Progr