亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? server.java

?? java編寫的代理服務器軟件
?? JAVA
字號:
  import java.net.*;
  import java.io.*;
  import java.util.Date.*;
  import java.awt.*;
  import java.awt.event.*;
  
  
  public class Server  implements Runnable
  {
  	
  	
 
    private abc frame;
  

    //在放棄之前嘗試連接遠程主機的次數
     public int CONNECT_RETRIES=5;
    //在兩次連接嘗試之間的暫停時間
     public int CONNECT_PAUSE=5;
    //等待Socket輸入的等待時間
     public int TIMEOUT=50;   
    //Socket輸入的緩沖大小
     public int BUFSIZ=1024;  
    //是否要求代理服務器在日志中記錄所有已傳輸的數據(true表示“是”)。
    static public boolean logging = false;
    //一個OutputStream對象,默認日志例程將向該OutputStream對象輸出日志信息
    static public OutputStream log=null; 
    //允許最大連接
    static  public int MAXUSER=20;  
    //用戶連接數量
     static public int count=0;
    //Socket對象
     protected Socket socket;
     
    private String parent=null;
    private int parentPort=-1;
    public void setParentProxy(String name, int pport) 
    {
      parent=name;
      parentPort=pport;
    }
    
    
    public Server(Socket s,abc frame) 
      { 
        socket=s; 
        this.frame=frame;
        
      }
      
      
      public void writeLog(int c, boolean browser) throws IOException 
      {
      log.write(c);
      }
      
      public void writeLog(byte[] bytes,int offset, int len, boolean browser) throws IOException 
     {
      for (int i=0;i<len;i++) writeLog((int)bytes[offset+i],browser);
     }
     
     
     public String processHostName(String url, String host, int port, Socket sock) 
    {
      java.text.DateFormat cal=java.text.DateFormat.getDateTimeInstance();
      
      System.out.println(cal.format(new java.util.Date()) + " - " + url + " " 
              + sock.getInetAddress()+"\n");
      frame.jLog.append(cal.format(new java.util.Date()) + " - " + url + " " 
              + sock.getInetAddress()+"\n");
      return host;
    }
    
    
    public void run() 
 {
 
	
  if(count>MAXUSER)
   {
  	//用戶超過指定連接數目,向用戶發送用戶過多網頁
  	try
  	   {
  	       System.out.println("用戶超過指定");
           PrintStream out =new PrintStream(socket.getOutputStream());
           out.println("HTTP/1.0 200 OK");
           out.println("MIME_version:1.0");
           out.println("Content_Type:text/html");
           String msg="<html> <head</head><body> <hl> 連接用戶數量過多,請稍后再試!</jl></Body></html>";
           out.println("Content_Length:"+msg.length());
           out.println(" ");
           out.print(msg);
        }catch (IOException ex){}
    try 
        { 
         socket.close();
        } 
           catch (Exception e1) {}
    }
   else
   {
     count++;
     String line;
     String host;
     int port=80;
     Socket outbound=null;
    try 
      {
      	//Socket的超時時間
        socket.setSoTimeout(TIMEOUT);
        //獲得輸入流
        InputStream is=socket.getInputStream();
        OutputStream os=null;
        try 
          {
                // 獲取請求行的內容
            line="";
            host="";
            int state=0;
            boolean space;
            while (true) 
              {
              	//字節流結束返回-1
                int c=is.read();
                if (c==-1) 
                   break;
                if (logging) 
                   writeLog(c,true); 
                space=Character.isWhitespace((char)c); 
                switch (state) 
                  {
                    case 0:
                    if (space) 
                      // 跳過多個空白字符
                      continue; 
                    state=1;
                    case 1:
                    if (space) 
                      {
                        state=2;
                        continue;
                      }
                    line=line+(char)c;
                    break;
                    case 2:
                    if (space) 
                      // 跳過多個空白字符
                      continue; 
                    state=3;
                    case 3:
                    if (space) 
                      {
                        state=4; 
                      // 只取出主機名稱部分
                        String host0=host;
                        int n;
                        n=host.indexOf("//");
                        if (n!=-1) 
                          host=host.substring(n+2);
                        n=host.indexOf('/');
                        if (n!=-1) 
                          host=host.substring(0,n);
                         // 分析可能存在的端口號 
                        n=host.indexOf(":");
                        if (n!=-1) 
                          { 
                            port=Integer.parseInt(host.substring(n+1));
                            host=host.substring(0,n);
                          }
                        host=processHostName(host0,host,port,socket);
                        if (parent!=null) 
                          {
                            host=parent;
                            port=parentPort;
                          }
                        int retry=CONNECT_RETRIES;
                        while (retry--!=0) 
                          {
                            try 
                              {
                                outbound=new Socket(host,port);
                                break;
                               } 
                            catch (Exception e) { }
                           // 等待
                            Thread.sleep(CONNECT_PAUSE);
                          }
                       if (outbound==null) 
                          { 
           //請求的網頁無法獲得的情況
                            System.out.println("獲取網頁不存在或者服務器無法取得網頁");
                            PrintStream out =new PrintStream(socket.getOutputStream());
                            out.println("HTTP/1.0 200 OK");
                            out.println("MIME_version:1.0");
                            out.println("Content_Type:text/html");
                            String msg="<html> <head</head><body> <hl> 你所請求的網頁不存在,或服務器無法獲得網頁,請與管理員聯系!</jl></Body></html>";
                            out.println("Content_Length:"+msg.length());
                            out.println(" ");
                            out.print(msg);
                            try 
                              { 
                                socket.close();
                                count--;
                              } 
                            catch (Exception e1) {}
                            break;
                           } 
                      //打開Socket之后,run先把部分的請求寫入Socket,然后調用pipe方法。
                      outbound.setSoTimeout(TIMEOUT);
                      os=outbound.getOutputStream();
                      os.write(line.getBytes());  //line=get
                      os.write(' ');
                      os.write(host0.getBytes());   //獲得的ie信息                   
                      os.write(' ');
                      pipe(is,outbound.getInputStream(),os,socket.getOutputStream());
                    
                      break;
                    }
                  host=host+(char)c;
                  break;
                }
              }
           }
         catch (IOException e) { }
       } 
    catch (Exception e) { }
    finally 
      {
      try 
        { 
          socket.close();
          count--;
        } 
        catch (Exception e1) {}
      try 
        { 
          outbound.close();
        } 
         catch (Exception e2) {}
      }
   }
}

//pipe方法直接在兩個Socket之間以最快的速度執行讀寫操作。
 void pipe(InputStream is0, InputStream is1,
      OutputStream os0,  OutputStream os1) throws IOException 
     {
       try 
         {
           int ir;
           byte bytes[]=new byte[BUFSIZ]; 
           while (true) 
             {
               try 
                 {
                   if ((ir=is0.read(bytes))>0) 
                     {
                       os0.write(bytes,0,ir);   //發送
                       if (logging) 
                         writeLog(bytes,0,ir,true);
                     }
                   else 
                     if (ir<0)
                   break;
                 } 
               catch (InterruptedIOException e) { }
               try 
               {
                 if ((ir=is1.read(bytes))>0)  //得到數據
                   {
                     os1.write(bytes,0,ir);  //發送數據
                     if (logging) 
                       writeLog(bytes,0,ir,false);
                    }
                 else if (ir<0) 
                 break;
               } 
               catch (InterruptedIOException e) { }
             }
            } 
          catch (Exception e0) 
            {
            //超時異常
              System.out.println("代理服務器的轉換出現了異常 " + e0);
            }
        }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩电影免费一区| 91麻豆自制传媒国产之光| 国产福利一区在线观看| 色香蕉成人二区免费| 欧美大片在线观看| 亚洲精品视频在线| 国产精品一卡二| 欧美绝品在线观看成人午夜影视| 久久久久久久久久久99999| 亚洲综合激情网| 国产91色综合久久免费分享| 欧美日韩在线播放三区四区| 国产日韩精品久久久| 轻轻草成人在线| 91国产精品成人| 国产精品蜜臀在线观看| 精品写真视频在线观看| 欧美二区在线观看| 亚洲精品亚洲人成人网| 成人精品鲁一区一区二区| 日韩一区二区三区三四区视频在线观看| 国产精品久久久久久久久搜平片| 奇米精品一区二区三区四区| 欧美性感一区二区三区| 亚洲色图清纯唯美| www.在线欧美| 欧美国产精品一区| 国产电影精品久久禁18| ww亚洲ww在线观看国产| 麻豆精品久久精品色综合| 欧美精品九九99久久| 亚洲五码中文字幕| 91成人在线免费观看| 亚洲欧洲日产国码二区| 成人综合婷婷国产精品久久| 国产亚洲欧美中文| 福利一区在线观看| 欧美高清在线一区二区| 国产精品91xxx| 欧美激情一区二区三区在线| 国产毛片一区二区| 欧美经典一区二区| 成人午夜视频福利| 亚洲色图视频网| 色婷婷国产精品久久包臀| 亚洲免费电影在线| 欧美在线不卡视频| 日本视频免费一区| 欧美精品一区二区三区高清aⅴ | 国产精品第一页第二页第三页| 国产一区二区在线看| 国产视频一区二区在线观看| 高清在线成人网| 综合在线观看色| 欧美主播一区二区三区| 亚洲线精品一区二区三区| 欧美日韩免费电影| 奇米888四色在线精品| 久久网这里都是精品| av网站一区二区三区| 一个色综合av| 欧美一区二区不卡视频| 国产一区高清在线| 亚洲精品美腿丝袜| 日韩视频在线你懂得| 国产成人一级电影| 亚洲国产一区视频| 欧美精品一区二区三区久久久| 成人免费看视频| 亚洲国产精品久久一线不卡| 欧美大片在线观看一区| a级精品国产片在线观看| 亚洲一区二区三区四区中文字幕| 91精品国产欧美一区二区| 国产不卡视频在线观看| 亚洲国产精品麻豆| 国产视频一区二区在线| 欧美色综合网站| 国产在线视频精品一区| 亚洲一区电影777| 久久久五月婷婷| 欧美天天综合网| 国产91对白在线观看九色| 日韩专区在线视频| 中文字幕一区在线观看视频| 欧美一区二区精品在线| 成人av在线资源| 久久99在线观看| 夜夜嗨av一区二区三区中文字幕| 久久综合久久综合亚洲| 欧美图区在线视频| 成人精品视频一区二区三区尤物| 日韩极品在线观看| 亚洲精品久久嫩草网站秘色| 久久免费视频色| 91精品国产91久久久久久最新毛片| 成人天堂资源www在线| 蜜桃av一区二区| 亚洲18影院在线观看| 综合色中文字幕| 国产欧美日韩另类视频免费观看| 欧美精品99久久久**| 色一情一伦一子一伦一区| 高清不卡一区二区| 激情文学综合网| 久久国产夜色精品鲁鲁99| 亚洲宅男天堂在线观看无病毒| 亚洲国产精品成人综合| 久久精品一区二区三区四区| 6080亚洲精品一区二区| 欧美日韩国产综合一区二区| 色综合久久综合| 99久久er热在这里只有精品15 | 青青草精品视频| 亚洲成人手机在线| 亚洲一二三四区不卡| 亚洲精选视频免费看| 亚洲激情欧美激情| 亚洲黄色小说网站| 亚洲男人天堂一区| 亚洲主播在线播放| 亚洲成人一二三| 日韩和欧美一区二区三区| 香蕉乱码成人久久天堂爱免费| 亚洲已满18点击进入久久| 一区二区三区精品| 午夜在线电影亚洲一区| 午夜欧美大尺度福利影院在线看| 午夜久久福利影院| 日韩av电影一区| 国内精品伊人久久久久av一坑 | www久久精品| 中文字幕精品在线不卡| 国产精品天干天干在线综合| 国产精品第五页| 亚洲国产精品一区二区久久| 亚洲成a人v欧美综合天堂下载 | 国产精品乱码久久久久久| 1区2区3区精品视频| 亚洲与欧洲av电影| 蜜桃一区二区三区在线| 国产精品综合在线视频| 成人黄色片在线观看| 欧美伊人久久大香线蕉综合69| 538prom精品视频线放| 精品国产乱码久久久久久夜甘婷婷| 久久久www免费人成精品| 国产精品高潮呻吟久久| 亚洲成年人影院| 国产激情91久久精品导航| 丁香婷婷综合激情五月色| 一本大道久久a久久综合婷婷| 欧美日韩aaaaaa| 久久久久久黄色| 亚洲一区二区三区精品在线| 麻豆精品一区二区三区| 99精品视频在线观看免费| 欧美日韩一区二区在线观看 | 91精品国产综合久久久蜜臀图片| 精品国产网站在线观看| 中文字幕五月欧美| 日韩国产成人精品| 91亚洲精品乱码久久久久久蜜桃 | 欧美高清在线视频| 亚洲国产精品人人做人人爽| 国产精品一区二区在线观看不卡| 91猫先生在线| 久久蜜桃一区二区| 亚洲成人av一区二区三区| 国产.欧美.日韩| 777久久久精品| 亚洲日本在线视频观看| 国内成人自拍视频| 欧美日韩国产在线观看| 亚洲欧洲国产日韩| 麻豆精品久久精品色综合| 欧洲精品中文字幕| 欧美高清一级片在线观看| 久久精品国产**网站演员| 欧美主播一区二区三区美女| 亚洲国产精品精华液ab| 久草这里只有精品视频| 欧美日韩国产高清一区| 国产精品国产三级国产aⅴ中文 | 亚洲激情综合网| 国产91丝袜在线播放0| 精品欧美一区二区久久| 三级精品在线观看| 欧美丝袜丝nylons| 亚洲精品伦理在线| 97se亚洲国产综合自在线观| 久久久无码精品亚洲日韩按摩| 日本系列欧美系列| 欧美日韩在线一区二区| 一区二区三区小说| 91免费小视频| 亚洲精品中文字幕乱码三区| 99精品国产99久久久久久白柏| 国产偷国产偷精品高清尤物 | 国产精品久久久久久一区二区三区|