首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

java写的一个网络署理小工具

2012-07-16 
java写的一个网络代理小工具最近老师给的项目刚做完,闲着无聊就想着编点东西。实验室中通过代理上网的,所以

java写的一个网络代理小工具

最近老师给的项目刚做完,闲着无聊就想着编点东西。实验室中通过代理上网的,所以我就试着编写了网络代理小工具。代码如下:

package com.lqz;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;import java.lang.Runnable;/** *  * @author feifan * @category javaCCproxy * @version 1.5.0 * @copyrihgt private *  *  */public class UsingGoAgent {private ServerSocket server=null;private Socket client=null;public UsingGoAgent() throws Exception {server=new ServerSocket(809);service();}public void service() throws IOException{while(true){client=server.accept();client.setSoTimeout(500);new Thread(new ProcessRequest(client)).start();}}/** *  * receive request data and send request data * */class ProcessRequest implements Runnable {private Socket pClient,socket;private InputStream is;private OutputStream os;private String host=null;private int port=80;public ProcessRequest(Socket socket){this.pClient=socket;}public void run(){try {is=pClient.getInputStream();byte[] array=new byte[1024];int b=is.read(array);int count=0;StringBuffer sb=new StringBuffer();while(b>0){for(int i=0;i<b;i++){ char c=(char)array[i];     if(c=='/'){     count++;     }     if(count==2&&c!='/'){     sb.append(c);     }     if(count==3){     break;     }}host=sb.toString();break;}//create new socket link for current System.out.println("当前主机名为:"+host);socket=new Socket(host,80);socket.setSoTimeout(500);//Socket socket=new Socket("127.0.0.1",8087);is=pClient.getInputStream();os=pClient.getOutputStream();OutputStream currentos=socket.getOutputStream();InputStream currentis=socket.getInputStream();byte[] newarray=new byte[1024];int length=0;for(int i=0;i<array.length;i++){System.out.print((char)array[i]);}currentos.write(array,0,b);//currentos.write(' ');//currentos.write(host.getBytes());//currentos.write(' ');while(b!=-1){while((length=currentis.read(newarray))!=-1) os.write(newarray,0,length);  b=is.read(array); currentos.write(array,0,b); }} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {socket.close();pClient.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}}

测试过,性能还可以。代码就不解释了。

热点排行