web代理服务器实验

web代理服务器实验

ID:39469779

大小:52.00 KB

页数:7页

时间:2019-07-04

web代理服务器实验_第1页
web代理服务器实验_第2页
web代理服务器实验_第3页
web代理服务器实验_第4页
web代理服务器实验_第5页
资源描述:

《web代理服务器实验》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Web代理服务器实验附录代码:1.ProxyCache类importjava.net.*;importjava.io.*;importjava.util.*;publicclassProxyCache{privatestaticHashMapURIBuff=newHashMap();///代理入口privatestaticintport;/*客户链接的套接字,port是要代理侦听来自客户端的传入连接的端口号*/privatestaticServerSocketsocket;/*创建一个Proxy对象和套接字*/publics

2、taticvoidinit(intp){port=p;try{socket=newServerSocket(port);}catch(IOExceptione){System.out.println("Errorcreatingsocket:"+e);System.exit(-1);}}publicstaticvoidhandle(Socketclient){Socketserver=null;HttpRequestrequest=null;HttpResponseresponse=null;//处理请求。如果存在异常,就回复并终止它。这意味着客户端将会挂起一段时间,直到超时.读取请

3、求try{BufferedReaderfromClient=newBufferedReader(newInputStreamReader(client.getInputStream()));request=newHttpRequest(fromClient);StringURI=request.URI;byte[]buff=URIBuff.get(URI);if(buff!=null){DataOutputStreamtoClient;/*创建一个toClient对象*/try{toClient=newDataOutputStream(client.getOutputStream()

4、);toClient.writeBytes(response.toString());toClient.write(buff);//缓存//写响应到客户端。首先头部,然后主体client.close();System.out.print("UseBuffered");}catch(IOExceptione){e.printStackTrace();}return;//不再往下走}}catch(IOExceptione){System.out.println("Errorreadingrequestfromclient:"+e);return;}//向服务器发送请求try{//打开套接

5、字并向其中写入请求server=newSocket(request.getHost(),request.getPort());DataOutputStreamtoServer=newDataOutputStream(server.getOutputStream());toServer.writeBytes(request.toString());//以下toServer不能够close,它关闭会导致连接server也会关闭//toServer.close();System.out.println("Requestforwarded.");}catch(UnknownHostExcep

6、tione){System.out.println("Unknownhost:"+request.getHost());System.out.println(e);return;}catch(IOExceptione){System.out.println("Errorwritingrequesttoserver:"+e);return;}//读取相应并将其转发给客户端try{DataInputStreamfromServer=newDataInputStream(server.getInputStream());response=newHttpResponse(fromServer

7、);DataOutputStreamtoClient=newDataOutputStream(client.getOutputStream());toClient.writeBytes(response.toString());URIBuff.put(request.URI,response.body);toClient.write(response.body);//写响应到客户端。首先头部,然后主体client.close();server.close(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。