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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? httpserver.java

?? java ogg player library. for play back ogg audio
?? JAVA
字號:
/* -*-mode:java; c-basic-offset:2; -*- */
/* JRoar -- pure Java streaming server for Ogg 
 *
 * Copyright (C) 2001,2002 ymnk, JCraft,Inc.
 *
 * Written by: 2001,2002 ymnk<ymnk@jcraft.com>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */

package com.jcraft.jroar;
import java.lang.*;
import java.io.*;
import java.net.*;
import java.util.*;

class HttpServer extends Thread{

  static{
    HomePage.register();
    Ctrl.register();
    Stats.register();
    Mount.register();
    Drop.register();
    Shout.register();
    UDPPage.register();
    Store.register();

    Debug.register();
  }

  static int connections=0;
  static int client_connections=0;
  static int source_connections=0;

  private ServerSocket serverSocket=null;
  static int port=8000;
  static String myaddress=null;
  static String myURL=null;

  HttpServer(){
    connections=0;
    try{ serverSocket=new ServerSocket(port); }
    catch(IOException e){
      //System.out.println("ServerSocket error"+e );
      System.exit(1);
    }
    try{
      if(myaddress==null)
        myURL="http://"+InetAddress.getLocalHost().getHostAddress()+":"+port;
      else
        myURL="http://"+myaddress+":"+port;
      //System.out.println("myURL: "+myURL);
    }
    catch(Exception e){
      System.out.println(e );
    }
  }

  public void run(){
    Socket socket=null;
    while(true){
      try{socket=serverSocket.accept();}
      catch(IOException e) {
	System.out.println("accept error");
	System.exit(1);
      }
      connections++;
      new Spawn(socket);
    }
  }

  class Spawn extends Thread{
    private Socket socket=null;
    Spawn(Socket socket){
      super();
      this.socket=socket;
      start();
    }
    public void run(){
      try{(new Dispatch(socket)).doit();}
      catch(Exception e){}
    }
  }
}
 
class Dispatch{
  private MySocket mySocket=null;
  private String rootDirectory=".";
  private String defaultFile="index.html";

  Dispatch(Socket s) throws IOException{
    super();
    mySocket=new MySocket(s);
  }

  private void Response(String file) throws IOException{
    FileInputStream	fileInputStream=null;
    BufferedInputStream	bufferedInputStream=null;
    DataInputStream	dataInputStream=null;

    try {
      fileInputStream=new FileInputStream(file);
      bufferedInputStream=new BufferedInputStream(fileInputStream);
      dataInputStream=new DataInputStream(bufferedInputStream);
    }
    catch(IOException e){return;}

    try {
      int c;
      while(true){
        c=dataInputStream.readByte();
	mySocket.print((char)c);
      }
    }
    catch(IOException e){ }

    try{ dataInputStream.close(); } catch(IOException e){ }
    mySocket.flush();
    mySocket.close( ) ;
  }

  private Vector getHttpHeader(MySocket ms) throws IOException{
    Vector v=new Vector();
    String foo=null;
    while(true){
      foo=ms.readLine();
      if(foo.length()==0){
	break;
      }
System.out.println(" "+foo);
      v.addElement(foo);
    }
    return v;
  }

  private void procPOST(String string, Vector httpheader) throws IOException{
    String foo;
    int	len=0;
    int	c;
    String file=string.substring(string.indexOf(' ') + 1);
    if(file.indexOf(' ')!=-1)
      file=file.substring(0 , file.indexOf(' '));

    for(int i=0; i<httpheader.size(); i++){
      foo=(String)httpheader.elementAt(i);
//System.out.println("foo: "+foo);
      if(foo.startsWith("Content-Length:") ||
	 foo.startsWith("Content-length:")  // hmm... for Opera, lynx
	 ){
	foo=foo.substring(foo.indexOf(' ')+1);
	foo=foo.trim();
	len=Integer.parseInt(foo);
      }
    }

    try{
      Object o=Page.map(file);
      if(o!=null){
        Page cgi=null;
        if(o instanceof String){
          String className=(String)o;
          Class classObject=Class.forName(className);
          cgi=(Page)classObject.newInstance();
        }
        else if(o instanceof Page){
          cgi=(Page)o;
        }
        if(cgi!=null){
          cgi.kick(mySocket, cgi.getVars(mySocket , len), httpheader);
          mySocket.flush();
          mySocket.close();
          return;
	}
      }
    }
    catch(Exception e){
    }
    Page.unknown(mySocket, file);
  }

  private void procGET(String string, Vector httpheader) throws IOException{

    String file;

    file=string.substring(string.indexOf(' ')+1);
    if(file.indexOf(' ')!=-1){
      file=file.substring(0,file.indexOf(' '));
    }

    String _file=file;

    if(_file.startsWith("//")){
      _file=_file.substring(1);
    }

    Source source=Source.getSource(_file);
    if(source!=null){
      boolean reject=false;
      if(source.getLimit()!=0 &&
         source.getLimit()<source.getListeners()){
        reject=true;
      }
      if(!reject && source.for_relay_only){
        reject=true;
        for(int i=0; i<httpheader.size(); i++){
          String foo=(String)httpheader.elementAt(i);
          if(foo.startsWith("jroar-proxy: ")){
            reject=false;
            break;
          }
        }
      }

      if(reject){
        Page.unknown(mySocket, _file);
        return;
      }

      source.addListener(new HttpClient(mySocket, httpheader, _file));
      if(source instanceof Proxy){
        ((Proxy)source).kick();
      }
      if(source instanceof PlayFile){
        ((PlayFile)source).kick();
      }
      if(source.mountpoint!=null){
        HttpServer.client_connections++;
      }
      return;
    }

    if(_file.indexOf('?')!=-1) _file=_file.substring(0, _file.indexOf('?'));

    try{
      Object o=Page.map(_file);
      if(o!=null){
        Page cgi=null;
        if(o instanceof String){
          String className=(String)o;
          Class classObject=Class.forName(className);
          cgi=(Page)classObject.newInstance();
	}
        else if(o instanceof Page){
          cgi=(Page)o;
        }
        if(cgi!=null){
          cgi.kick(mySocket, cgi.getVars((file.indexOf('?')!=-1)? file.substring(file.indexOf('?')+1):null), httpheader);
          HttpServer.client_connections++;
          return;
        }
      }
    }
    catch(Exception e) {
    }

    if(_file.endsWith(".pls")){
      Page pls=new Pls(_file);
      pls.kick(mySocket, null, httpheader);
      return;
    }

    if(_file.endsWith(".m3u")){
      Page m3u=new M3u(_file);
      m3u.kick(mySocket, null, httpheader);
      return;
    }

    Page.unknown(mySocket, _file);
  }

  private void procHEAD(String string, Vector httpheader) throws IOException{

    String file;

    boolean exist=false;

    file=string.substring(string.indexOf(' ')+1);
    if(file.indexOf(' ')!=-1){
      file=file.substring(0,file.indexOf(' '));
    }

    Source source=Source.getSource(file);
    if(source!=null){
      exist=true;
    }
    else{
      String _file=file;

      if(_file.indexOf('?')!=-1) _file=_file.substring(0, _file.indexOf('?'));

      Object o=Page.map(_file);
      if(o!=null){
        exist=true;
      }
      else if(_file.endsWith(".pls")){
        exist=true;
      }
      else if(_file.endsWith(".m3u")){
        exist=true;
      }
      file=_file;
    }

    if(exist){
      Page.ok(mySocket,file);
    }
    else{
      Page.unknown(mySocket, file);
    }
  }

  private void procSOURCE(String string, Vector httpheader) throws IOException{

HttpServer.source_connections++;

    String file=string.substring(string.indexOf(' ')+1);
    if(file.indexOf(' ')!=-1){
      file=file.substring(0,file.indexOf(' '));
    }
    if(!file.startsWith("/")){
      file="/"+file;
    }

    String protocol=null;
    if(string.lastIndexOf(' ')!=-1){
      protocol=string.substring(string.lastIndexOf(' ')+1);
    }

    Source source=Source.getSource(file);
    if(source !=null && (source instanceof Ice)){
      Ice ice=(Ice)source;
      if(!ice.isAlive()){
        ice.stop();
        source=null;
      }
    }

    if(source==null){
      new Ice(file, mySocket, httpheader, protocol).kick();
    }
    else{
      try{
        mySocket.flush();
        mySocket.close( ) ;
      }
      catch(Exception e){
      }
    }
  }

  public void doit(){
    try{
      String foo=mySocket.readLine();

System.out.println(mySocket.socket.getInetAddress()+": "+foo+" "+(new java.util.Date()));

      if(foo.indexOf(' ')==-1){
        mySocket.close();
        return;
      }

      String bar=foo.substring(0, foo.indexOf(' '));
      //System.out.println(foo);

      Vector v=getHttpHeader(mySocket);

//System.out.println(v);

      if(bar.equalsIgnoreCase("POST")){
        procPOST(foo, v);
        return;
      }

      if(bar.equalsIgnoreCase("GET")){
        procGET(foo, v);
        return;
      }

      if(bar.equalsIgnoreCase("HEAD")){
        procHEAD(foo, v);
        return;
      }

      if(bar.equalsIgnoreCase("SOURCE")){
        procSOURCE(foo, v);
        return;
      }

    }
    catch(Exception e){
    }
  }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久午夜精品理论片中文字幕| 91精品在线免费| 亚洲成人av资源| 国产午夜精品久久久久久久| 欧美三级日韩三级| 风流少妇一区二区| 美脚の诱脚舐め脚责91| 一区二区三区日本| 国产精品嫩草99a| 日韩亚洲欧美成人一区| 欧美日韩你懂得| 色综合天天在线| 国产精品一品二品| 另类欧美日韩国产在线| 视频一区中文字幕国产| 亚洲在线视频免费观看| 综合久久综合久久| 亚洲国产精品成人综合| 精品成人私密视频| 欧美一区二区不卡视频| 欧美日韩黄色一区二区| 日本乱码高清不卡字幕| www.亚洲色图| 懂色av一区二区三区蜜臀| 精品在线观看免费| 日韩不卡免费视频| 视频在线观看一区| 日精品一区二区| 日韩国产成人精品| 午夜a成v人精品| 亚洲bdsm女犯bdsm网站| 香蕉久久夜色精品国产使用方法| 亚洲欧美日韩综合aⅴ视频| 国产精品国产精品国产专区不蜜 | 久久66热re国产| 日韩av网站免费在线| 午夜亚洲国产au精品一区二区| 亚洲品质自拍视频网站| 亚洲另类色综合网站| 亚洲免费大片在线观看| 综合网在线视频| 亚洲精品国产一区二区三区四区在线| 综合精品久久久| 亚洲精品成人悠悠色影视| 一区二区三区加勒比av| 亚洲午夜在线视频| 亚洲1区2区3区视频| 日韩电影在线免费看| 蜜臀久久99精品久久久久宅男| 久久精品国产亚洲高清剧情介绍| 六月丁香婷婷色狠狠久久| 精久久久久久久久久久| 国产成人综合网| 成人av影院在线| 91老师国产黑色丝袜在线| 成人丝袜高跟foot| 91香蕉视频在线| 欧美性色综合网| 337p亚洲精品色噜噜| 日韩欧美一级精品久久| 国产欧美一区二区三区网站| 国产欧美日韩激情| 一区二区视频在线看| 午夜成人在线视频| 国产精品中文字幕一区二区三区| 成人午夜电影久久影院| 欧美三级中文字幕在线观看| 欧美一区二区不卡视频| 久久精品一区二区三区不卡牛牛| 国产精品久久久久久久久搜平片| 一区二区三区精品视频| 久久69国产一区二区蜜臀| 99久久精品国产精品久久 | 中文幕一区二区三区久久蜜桃| 亚洲欧洲av在线| 日韩国产精品91| 国产91综合网| 欧美视频一区二| 2024国产精品视频| 亚洲免费在线看| 捆绑变态av一区二区三区| 国产69精品一区二区亚洲孕妇 | 久久久久一区二区三区四区| 一区二区中文字幕在线| 亚洲www啪成人一区二区麻豆 | www.日韩精品| 9191国产精品| 国产精品全国免费观看高清 | 国产专区欧美精品| 91年精品国产| 欧美精品一区二区三区久久久| 亚洲精品视频免费看| 国产一区二区三区四| 欧美精品日韩综合在线| 中文字幕第一区| 久久精品99国产精品| 91网站在线播放| 久久久影院官网| 亚洲3atv精品一区二区三区| 成人一区二区视频| 制服丝袜亚洲播放| 亚洲欧洲99久久| 国产美女娇喘av呻吟久久| 欧美日韩精品是欧美日韩精品| 中文字幕欧美三区| 久久99国产精品麻豆| 欧美三级乱人伦电影| 最新日韩在线视频| 国产麻豆精品95视频| 欧美一卡二卡三卡四卡| 亚洲制服欧美中文字幕中文字幕| 国产91富婆露脸刺激对白| 精品盗摄一区二区三区| 日本不卡中文字幕| 欧美日韩综合色| 亚洲精品中文在线| 色婷婷久久99综合精品jk白丝| 中文字幕在线不卡| 成人免费毛片片v| 久久综合九色综合欧美98| 免费高清在线视频一区·| 7777精品伊人久久久大香线蕉完整版 | 爽好久久久欧美精品| 欧美网站一区二区| 一区二区在线观看免费| 91一区二区在线观看| 日韩毛片在线免费观看| 成人在线视频首页| 国产日韩高清在线| 国产91精品精华液一区二区三区 | 国产欧美久久久精品影院| 久草精品在线观看| 日韩精品一区二区三区蜜臀| 丝袜美腿亚洲色图| 欧美一级xxx| 美女尤物国产一区| 日韩精品一区二区三区蜜臀| 美女视频一区在线观看| 日韩午夜中文字幕| 蜜臀99久久精品久久久久久软件| 91精品国产麻豆| 蜜臀久久99精品久久久久久9| 欧美大片免费久久精品三p| 久久99精品久久久久久动态图 | av午夜精品一区二区三区| 中文幕一区二区三区久久蜜桃| 成人在线综合网站| 亚洲欧洲日韩av| 色婷婷亚洲婷婷| 亚洲不卡一区二区三区| 日韩丝袜美女视频| 国产在线精品一区二区三区不卡| 久久久久久麻豆| 成人黄色综合网站| 有码一区二区三区| 欧美老女人在线| 久久国产精品99精品国产 | 天天综合日日夜夜精品| 日韩欧美不卡在线观看视频| 国产在线精品一区二区夜色 | 一区二区三区在线视频播放| 欧美亚洲综合在线| 男人操女人的视频在线观看欧美| 精品国产91乱码一区二区三区| 成人午夜短视频| 亚洲成人三级小说| 久久综合国产精品| 91网站视频在线观看| 日韩高清不卡一区二区| 久久人人爽爽爽人久久久| 99久久精品一区二区| 五月天一区二区| 久久久精品日韩欧美| 日本韩国一区二区| 免费一级片91| 最好看的中文字幕久久| 6080亚洲精品一区二区| 成人免费视频网站在线观看| 偷拍亚洲欧洲综合| 国产精品视频在线看| 欧美日韩亚洲另类| 国产成人一区在线| 性做久久久久久| 国产偷国产偷精品高清尤物 | 日韩一区二区三区视频在线| 高清日韩电视剧大全免费| 亚洲免费在线观看视频| 欧美精品一区二区三区在线| 欧美性受xxxx| 成人午夜视频在线| 久久99国产精品麻豆| 亚洲自拍另类综合| 国产精品麻豆视频| 日韩一级视频免费观看在线| 91色porny| 国产盗摄一区二区三区| 日韩黄色免费电影| 亚洲一区在线视频| 国产精品久久久久影视| 精品国产精品网麻豆系列|