欢迎来到天天文库
浏览记录
ID:14446679
大小:132.40 KB
页数:14页
时间:2018-07-28
《计算机网络原理实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、多线程Web服务器1实验目的:用JAVA语言开发一个多线程的WEB服务器,它能并行服务于多个请求。发送网页文件,让网页文件能够通过在URL中制定端口号来被浏览器使用。2实验代码及截图classConnectionThreadextendsThread{Socketclient;intcounter;publicConnectionThread(Socketcl,intc){client=cl;counter=c;}publicvoidrun()//线程体{try{StringdestIP=client.ge
2、tInetAddress().toString();//客户机IP地址intdestport=client.getPort();//客户机端口号System.out.println("Connection"+counter+":connectedto"+destIP+"onport"+destport+".");PrintStreamoutstream=newPrintStream(client.getOutputStream());DataInputStreaminstream=newDataInputS
3、tream(client.getInputStream());Stringinline=instream.readLine();//读取Web浏览器提交的请求信息System.out.println("Received:"+inline);if(getrequest(inline)){//如果是GET请求Stringfilename=getfilename(inline);Filefile=newFile(filename);if(file.exists()){//若文件存在,则将文件送给Web浏览器Sys
4、tem.out.println(filename+"requested.");outstream.println("HTTP/1.0200OK");outstream.println("MIME_version:1.0");outstream.println("Content_Type:text/html");intlen=(int)file.length();outstream.println("Content_Length:"+len);outstream.println("");sendfile(ou
5、tstream,file);//发送文件outstream.flush();}else{//文件不存在时Stringnotfound="
6、println("Content_Length:"+notfound.length()+2);outstream.println("");outstream.println(notfound);outstream.flush();}}longm1=1;while(m1<11100000){m1++;}//延时client.close();}catch(IOExceptione){System.out.println("Exception:"+e);}}/*获取请求类型是否为“GET”*/booleanget
7、request(Strings){if(s.length()>0){if(s.substring(0,3).equalsIgnoreCase("GET"))returntrue;}returnfalse;}/*获取要访问的文件名*/Stringgetfilename(Strings){Stringf=s.substring(s.indexOf('')+1);f=f.substring(0,f.indexOf(''));try{if(f.charAt(0)=='/')f=f.substring(1);}cat
8、ch(StringIndexOutOfBoundsExceptione){System.out.println("Exception:"+e);}if(f.equals(""))f="index.html";returnf;}/*把指定文件发送给Web浏览器*/voidsendfile(PrintStreamouts,Filefile){try{DataInputStreamin=newDataInputStre
此文档下载收益归作者所有