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

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

?? proxyserver.java

?? 簡單介紹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一区二区三区免费野_久草精品视频
这里只有精品视频在线观看| 国产精品人成在线观看免费| 7878成人国产在线观看| 国产欧美精品一区二区色综合 | 亚洲欧洲精品一区二区三区不卡| 亚洲在线成人精品| www.欧美日韩国产在线| 欧美一区二区三区免费在线看| 亚洲欧美一区二区视频| 国产精品一区在线观看乱码| 欧美猛男男办公室激情| 日韩码欧中文字| 国产高清久久久| 欧美一区二区成人| 午夜精品久久久久久久99樱桃| 高清在线不卡av| 日韩精品一区二区三区swag| 午夜精品久久一牛影视| 色88888久久久久久影院按摩| 国产日韩v精品一区二区| 裸体歌舞表演一区二区| 欧美丰满高潮xxxx喷水动漫| 亚洲一区二区三区视频在线| 色噜噜久久综合| 国产精品国产三级国产普通话99| 国产成人av在线影院| 久久五月婷婷丁香社区| 欧美日韩一区三区四区| **网站欧美大片在线观看| 粉嫩高潮美女一区二区三区| 久久精品亚洲麻豆av一区二区| 美国欧美日韩国产在线播放| 欧美一区二区三区喷汁尤物| 秋霞电影网一区二区| 欧美精品777| 蜜桃视频在线观看一区| 91精品国产综合久久精品性色| 五月婷婷综合网| 欧美午夜精品电影| 亚洲成av人片在线观看无码| 欧美日本在线看| 美女精品一区二区| 精品理论电影在线观看| 国产精品自产自拍| 中文成人综合网| 一本色道a无线码一区v| 亚洲一区二区三区自拍| 欧美日韩国产电影| 精品一二三四区| 国产欧美日韩三区| www.日韩精品| 午夜欧美2019年伦理 | 91香蕉国产在线观看软件| 亚洲欧洲日韩女同| 欧美三级午夜理伦三级中视频| 午夜精品久久一牛影视| 精品少妇一区二区三区免费观看| 韩国av一区二区| 国产欧美精品一区| 在线免费观看不卡av| 日韩电影免费在线观看网站| 久久久久久久一区| av电影天堂一区二区在线观看| 亚洲一区二区3| 精品少妇一区二区三区在线播放| 大胆欧美人体老妇| 亚洲第一狼人社区| 久久久久久久久久久久久久久99| aaa欧美日韩| 奇米影视一区二区三区| 中文字幕一区二区三区蜜月| 欧美三级资源在线| 韩国av一区二区三区四区| 亚洲卡通动漫在线| 亚洲精品一区二区三区四区高清| aaa亚洲精品一二三区| 看电视剧不卡顿的网站| 亚洲色图在线视频| 精品美女一区二区| 91国偷自产一区二区开放时间| 狠狠色2019综合网| 亚洲图片欧美色图| 国产精品欧美极品| 亚洲第四色夜色| 国产精品传媒在线| 精品久久久久久久久久久院品网| 91黄色免费版| 国产精品小仙女| 蜜桃久久av一区| 亚洲激情男女视频| 国产午夜亚洲精品理论片色戒| 3d成人h动漫网站入口| 97se亚洲国产综合自在线不卡| 久久er99热精品一区二区| 一区二区三区色| 国产精品理论在线观看| 日韩美女天天操| 欧美精品99久久久**| 在线视频欧美精品| av一本久道久久综合久久鬼色| 国产精品资源网| 蜜臀va亚洲va欧美va天堂| 亚洲宅男天堂在线观看无病毒| 亚洲国产成人午夜在线一区| 欧美r级在线观看| 欧美一区二区二区| 在线播放中文字幕一区| 欧美日韩在线电影| 色婷婷激情久久| 91亚洲精华国产精华精华液| 国产成人免费视频精品含羞草妖精| 免费观看91视频大全| 日韩福利电影在线| 亚洲高清免费一级二级三级| 亚洲一区在线视频| 一个色综合av| 亚洲国产一区二区在线播放| 亚洲色欲色欲www在线观看| 国产精品第四页| 国产寡妇亲子伦一区二区| 国产一区二区三区综合| 国产一区二区剧情av在线| 九九国产精品视频| 国产自产2019最新不卡| 国产成人8x视频一区二区| 国产精品77777竹菊影视小说| 国产精品99久久久久| 成人精品一区二区三区中文字幕| 福利视频网站一区二区三区| 成人美女视频在线观看18| 成人av网站免费观看| 99re亚洲国产精品| 在线欧美一区二区| 91精品久久久久久蜜臀| 久久一区二区视频| 国产免费久久精品| 亚洲乱码日产精品bd| 性做久久久久久免费观看| 免费av网站大全久久| 国产乱码精品一区二区三区忘忧草| 国产精品2024| 一本色道久久综合亚洲aⅴ蜜桃| 欧美视频一区二区| 精品国产乱码久久久久久免费 | 日韩av电影一区| 国产麻豆成人精品| 成年人午夜久久久| 777亚洲妇女| 国产欧美日韩另类视频免费观看| 综合久久久久综合| 日韩精品高清不卡| 成人免费看视频| 欧美午夜精品一区二区三区| 久久久亚洲欧洲日产国码αv| 国产精品久久久久久久久快鸭| 亚洲mv在线观看| 国产一区二区三区黄视频| 91成人在线精品| 精品成人免费观看| 亚洲香肠在线观看| 国产一区999| 欧美日本视频在线| 久久影音资源网| 日韩精品久久理论片| 99视频一区二区三区| 视频一区二区中文字幕| 美女任你摸久久| 91美女在线视频| 国产视频亚洲色图| 香港成人在线视频| 粉嫩av一区二区三区在线播放| 欧美日本韩国一区二区三区视频| 日韩欧美专区在线| 亚洲一区二区三区爽爽爽爽爽| 国产精品小仙女| 日韩午夜激情av| 亚洲午夜久久久久| 99久久精品国产观看| 久久精品在线观看| 老色鬼精品视频在线观看播放| 精品视频色一区| 亚洲人成精品久久久久久| 国产成人在线色| 欧美精品一区二区三区高清aⅴ | 国产日韩综合av| 男男成人高潮片免费网站| 色94色欧美sute亚洲线路一久| 中文字幕乱码日本亚洲一区二区 | 国产精品久久久久婷婷| 久久激情五月激情| 欧美精品久久一区| 亚洲午夜在线观看视频在线| 91麻豆国产自产在线观看| 久久精品一区二区三区不卡| 蜜臀va亚洲va欧美va天堂| 3atv在线一区二区三区| 香蕉加勒比综合久久| 欧美疯狂性受xxxxx喷水图片| 亚洲欧美另类久久久精品2019| 不卡高清视频专区|