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

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

?? proxyserver.java

?? 簡單的代理服務器程序
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
c.start();
}
}

// 在連接線程退出前調用這個函數,它把某個特定線程從線程列表中刪除
protected synchronized void endConnection(Connection c) {
connections.remove(c);
log("連接到: " + c.client.getInetAddress().getHostAddress() +":" + c.client.getPort() + " 關閉.");
}

// 改變現有的連接上限
public synchronized void setMaxConnections(int max) {
maxConnections = max;
}

// 顯示server信息
public synchronized void displayStatus(PrintWriter out) {
// 顯示所有服務的列表
Iterator keys = services.keySet().iterator();
while(keys.hasNext()) {
Integer port = (Integer) keys.next();
Listener listener =	(Listener) services.get(port);
out.print("SERVICE " + listener.service.getClass().getName()+ " ON PORT " + port +
"\n");
}
// 顯示現有連接上限
out.print("MAX CONNECTIONS: " + maxConnections + "\n");
// 顯示現有連接列表
Iterator conns = connections.iterator();
while(conns.hasNext()) {
Connection c = (Connection)conns.next();
out.print("連接: " +c.client.getInetAddress().getHostAddress() +
":" + c.client.getPort() + " 端口:" +c.client.getLocalPort() +
c.service.getClass().getName() + "\n");
}
}
}

public class Connection extends Thread { // 多線程連接類
Socket client;     //與客戶端對話的套接字
Service service;   //提供給客戶端的service

public Connection(Socket client, Service service) {// 構造函數
super("Server.Connection:" +client.getInetAddress().getHostAddress() +
":" + client.getPort());
this.client = client;
this.service = service;
}

// 把客戶端的輸入輸出流傳給某個Service對象的 serve()方法
public void run() {
try {
InputStream in = client.getInputStream();
OutputStream out = client.getOutputStream();
service.serve(in, out);
}
catch (IOException e) {log(e);}
finally { endConnection(this); }
}
}

public interface Service {
public void serve(InputStream in, OutputStream out) throws IOException;
}

// 一個簡單的service,它向客戶端顯示當前sever上的時間并負責關閉客戶端連接
public static class Time implements Service {
public void serve(InputStream i, OutputStream o) throws IOException {
PrintWriter out = new PrintWriter(o);
out.print(new Date() + "\n");
out.close();
i.close();
}
}

// 這是另外一個簡單的service. 它從客戶端讀入輸入行,然后發送回去然后反轉
// 同時顯示歡迎信息,當用戶鍵入'.'作為一行的結尾時關閉連接
public static class Reverse implements Service {
public void serve(InputStream i, OutputStream o) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(i));
PrintWriter out =new PrintWriter(new BufferedWriter(new OutputStreamWriter(o)));
out.print("Welcome to the line reversal server.\n");
out.print("Enter lines.  End with a '.' on a line by itself.\n");
for(;;) {
out.print("> ");
out.flush();
String line = in.readLine();
if ((line == null) || line.equals(".")) break;
for(int j = line.length()-1; j >= 0; j--)
out.print(line.charAt(j));
out.print("\n");
}
out.close();
in.close();
}
}

// 這個服務是一個HTTP映射, 它返回客戶的 HTTP請求
public static class HTTPMirror implements Service {
public void serve(InputStream i, OutputStream o) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(i));
PrintWriter out = new PrintWriter(o);
out.print("HTTP/1.0 200 \n");
out.print("Content-Type: text/plain\n\n");
String line;
while((line = in.readLine()) != null) {
if (line.length() == 0) break;
out.print(line + "\n");
}
out.close();
in.close();
}
}

public static class UniqueID implements Service {
public int id=0;
public synchronized int nextId() { return id++; }
public void serve(InputStream i, OutputStream o) throws IOException {
PrintWriter out = new PrintWriter(o);
out.print("You are client #: " + nextId() + "\n");
out.close();
i.close();
}
}

// 解析一個基于命令的協議,通過這個協議可以提供具有密碼保護的對服務的實時控制
public static class Control implements Service {
  Server server;
  String password;
  boolean connected = false; // 是否有某個客戶連接
// 創建一個新的控制服務,它將控制某個特定的Server對象, 并需要
// 密碼驗證以獲取相關權限,注意這個Service的構造器包含參數
  public Control(Server server, String password) {
    this.server = server;
    this.password = password;
  }

// 這是負責提供服務的方法,它讀入客戶端的命令行,并解析為相關命令和參數
  public void serve(InputStream i, OutputStream o) throws IOException {
// 創建流
    BufferedReader in = new BufferedReader(new InputStreamReader(i));
    PrintWriter out = new PrintWriter(o);
    String line;
// 用戶是否已提供密碼?
    boolean authorized = false;
// 如果已經有一個客戶端連接,則向客戶端發送一個消息并關閉連接
// 在此使用一個synchronized區段來防止資源競爭
    synchronized (this) {
      if (connected) {
        out.print("ONLY ONE CONTROL CONNECTION ALLOWED.\n");
        out.close();
        return;
      }
      else
        connected = true;
    }

// 這是主循環:讀取一條命令,然后解析處理
    for (; ; ) { // 無限循環
      out.print("> ");
      out.flush();
      line = in.readLine(); // 獲取用戶輸入
      if (line == null)
        break; // 如果 EOF則退出
      try {
// 使用StringTokenizer來解析用戶命令
        StringTokenizer t = new StringTokenizer(line);
        if (!t.hasMoreTokens())
          continue; //如果輸入為空
// 獲得輸入的第一個詞并轉換成小寫
        String command = t.nextToken().toLowerCase();
// 與可能的各種命令比較并執行相應操作
        if (command.equals("password")) {
          String p = t.nextToken(); // 獲取下一個
          if (p.equals(this.password)) { // 密碼是否正確
            out.print("OK\n");
            authorized = true; // 授予權限
          }
          else
            out.print("INVALID PASSWORD\n"); // 否則失敗
        }
        else if (command.equals("add")) {
// 檢查是否提供了密碼
          if (!authorized)
            out.print("PASSWORD REQUIRED\n");
          else {
// 獲得服務的名稱并嘗試動態載入、實例化并處理異常
            String serviceName = t.nextToken();
            Class serviceClass = Class.forName(serviceName);
            Service service;
            try {
              service = (Service) serviceClass.newInstance();
            }
            catch (NoSuchMethodError e) {
              throw new IllegalArgumentException(
                  "Service must have a " +
                  "no-argument constructor");
            }
            int port = Integer.parseInt(t.nextToken());
// 如果沒有產生異常,則添加服務
            server.addService(service, port);
            out.print("SERVICE ADDED\n"); // 確認
          }
        }
        else if (command.equals("remove")) {
          if (!authorized)
            out.print("PASSWORD REQUIRED\n");
          else {
            int port = Integer.parseInt(t.nextToken());
            server.removeService(port); // 取消服務
            out.print("SERVICE REMOVED\n");
          }
        }
        else if (command.equals("max")) { // 設置連接上限
          if (!authorized)
            out.print("PASSWORD REQUIRED\n");
          else {
            int max = Integer.parseInt(t.nextToken());
            server.setMaxConnections(max);
            out.print("MAX CONNECTIONS CHANGED\n"); //確認
          }
        }
        else if (command.equals("status")) { // 顯示狀態
          if (!authorized)
            out.print("PASSWORD REQUIRED\n");
          else
            server.displayStatus(out);
        }
        else if (command.equals("help")) { // 幫助命令
// 顯示命令語法,不需要密碼
          out.print("COMMANDS:\n" + "\tpassword <password>\n" +
                    "\tadd <service> <port>\n" + "\tremove <port>\n" +
                    "\tmax <max-connections>\n" + "\tstatus\n" + "\thelp\n" +
                    "\tquit\n");
        }
        else if (command.equals("quit"))
          break;
        else
          out.print("UNRECOGNIZED COMMAND\n"); // 出現錯誤
      }
      catch (Exception e) {
        out.print("ERROR WHILE PARSING OR EXECUTING COMMAND:\n" + e + "\n");
      }
    }
// 關閉流并把連接標志位設為false使得其它客戶端連接
    connected = false;
    out.close();
    in.close();
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
自拍偷拍国产精品| 在线一区二区三区| 欧美xxxxx裸体时装秀| 视频一区二区三区在线| 欧美日韩免费视频| 青青草伊人久久| 日韩午夜在线播放| 美脚の诱脚舐め脚责91| 制服丝袜av成人在线看| 无码av中文一区二区三区桃花岛| 欧美亚洲国产bt| 日韩精品一级二级| 日韩视频永久免费| 制服丝袜一区二区三区| zzijzzij亚洲日本少妇熟睡| 成人app网站| 欧美日韩国产大片| 免费的成人av| 精品国产91亚洲一区二区三区婷婷| 日日欢夜夜爽一区| 精品不卡在线视频| 99在线精品视频| 亚洲综合在线视频| 91精品国产全国免费观看| 精彩视频一区二区三区| 国产女人水真多18毛片18精品视频| 成人性生交大片免费看视频在线 | 国产午夜精品在线观看| 丁香一区二区三区| 玉米视频成人免费看| 欧美丝袜第三区| 久久99国产精品久久| 国产欧美综合色| 色八戒一区二区三区| 日韩精品电影一区亚洲| 国产拍揄自揄精品视频麻豆| 色丁香久综合在线久综合在线观看| 三级久久三级久久| 国产亚洲短视频| 欧美性xxxxxx少妇| 国产乱码精品一区二区三区忘忧草| 亚洲国产精品精华液ab| 欧美视频一区二| 国产精品99久久久久久宅男| 一区二区欧美视频| 久久久久久影视| 在线精品观看国产| 国产美女av一区二区三区| 亚洲另类色综合网站| 精品国产乱码久久久久久久久 | 一区二区免费在线播放| 日韩一区二区影院| 99久久99精品久久久久久| 日韩精品乱码免费| 亚洲丝袜精品丝袜在线| 欧美成人猛片aaaaaaa| 色婷婷av一区二区三区之一色屋| 美女网站色91| 亚洲综合免费观看高清完整版在线| 久久综合久久久久88| 欧美日韩精品欧美日韩精品| 99精品视频中文字幕| 国产一区二三区好的| 亚洲1区2区3区4区| 日韩一区有码在线| 久久精品一区二区三区四区| 91精品蜜臀在线一区尤物| 色天使久久综合网天天| 成人黄色一级视频| 国产呦萝稀缺另类资源| 视频一区二区中文字幕| 亚洲一区二区美女| 亚洲欧美日本在线| 国产精品久久久久久久久免费相片 | 日本韩国欧美在线| jvid福利写真一区二区三区| 国产露脸91国语对白| 免费观看成人av| 日韩精品欧美精品| 日韩高清一区二区| 天堂久久久久va久久久久| 一区二区三区欧美视频| 亚洲欧美怡红院| 中文久久乱码一区二区| 久久九九久久九九| 久久精品人人爽人人爽| 久久你懂得1024| 精品国产3级a| 国产视频一区不卡| 国产日韩欧美精品综合| 亚洲乱码国产乱码精品精小说| 中文一区在线播放| 国产精品国产精品国产专区不片| 久久久久国产精品麻豆| 国产欧美一区二区精品仙草咪| 久久久精品欧美丰满| 国产女人18水真多18精品一级做| 久久影院视频免费| 国产欧美一区二区精品秋霞影院| 国产亚洲制服色| 国产精品久久久久永久免费观看| 国产精品久久久久三级| 亚洲青青青在线视频| 亚洲一二三四区不卡| 日韩国产在线观看| 国产在线视频不卡二| 懂色av一区二区夜夜嗨| 91丝袜美女网| 欧美日韩免费观看一区三区| 欧美一区二区三区在线看| 精品福利一二区| 国产精品乱码人人做人人爱 | 国产清纯在线一区二区www| 国产日韩综合av| 亚洲精品成人a在线观看| 石原莉奈在线亚洲三区| 久久爱另类一区二区小说| 国产剧情一区二区三区| 99re视频这里只有精品| 欧美日韩国产首页| 精品成人一区二区| 日韩码欧中文字| 免费久久精品视频| 成人aaaa免费全部观看| 欧美精品色一区二区三区| 久久久久久久电影| 亚洲专区一二三| 韩国女主播成人在线观看| 91网址在线看| 精品久久久久久久久久久院品网 | 国产日韩欧美精品在线| **欧美大码日韩| 免费人成精品欧美精品| 成人免费高清视频| 3atv在线一区二区三区| 国产精品国产三级国产有无不卡 | 日本vs亚洲vs韩国一区三区二区 | 成人黄色777网| 欧美日韩中文精品| 国产精品三级在线观看| 免费成人在线观看视频| 91久久精品一区二区| 久久久久久久综合日本| 五月婷婷激情综合网| proumb性欧美在线观看| 久久亚洲捆绑美女| 青青草97国产精品免费观看无弹窗版| av成人老司机| 欧美激情中文不卡| 精品一区二区久久久| 欧美人伦禁忌dvd放荡欲情| 中文字幕亚洲一区二区va在线| 激情小说亚洲一区| 91精品欧美久久久久久动漫| 亚洲黄色在线视频| www.欧美日韩| 欧美国产日韩亚洲一区| 国产美女娇喘av呻吟久久| 欧美一区二区视频免费观看| 夜夜操天天操亚洲| 91亚洲午夜精品久久久久久| 欧美国产激情一区二区三区蜜月 | 精品国产一区二区三区不卡| 亚洲欧洲av一区二区三区久久| 韩国一区二区在线观看| 欧美午夜精品理论片a级按摩| 国产欧美日韩在线视频| 精品一区二区三区久久| 欧日韩精品视频| 亚洲人成网站精品片在线观看| 国产一区二区在线观看免费| 欧美精品色一区二区三区| 亚洲视频在线一区观看| 国产91精品入口| 日韩美女一区二区三区| 图片区小说区区亚洲影院| 在线不卡免费av| 一区二区三区欧美在线观看| www.激情成人| 国产欧美日韩另类一区| 懂色av一区二区三区免费看| 国产三级三级三级精品8ⅰ区| 久久er99热精品一区二区| 欧美电影免费观看高清完整版 | 这里是久久伊人| 日韩一区精品视频| 666欧美在线视频| 亚洲高清一区二区三区| 色婷婷综合久久久久中文一区二区| 有码一区二区三区| 欧美日韩三级视频| 性久久久久久久| 欧美自拍偷拍午夜视频| 日韩中文字幕91| 欧美人动与zoxxxx乱| 午夜视频久久久久久| 日韩一区二区在线播放| 另类调教123区| www欧美成人18+| 国产美女在线观看一区|