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

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

?? webserver.java

?? Java寫的簡單的web服務器。 實現了html以及圖片和文件的傳送。
?? JAVA
字號:
import java.util.*;
import java.io.*;
import java.net.*;
import java.io.FileWriter;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.io.FileReader;
public class WebServer {

public static void main(String args[]) {
 
int i=1, PORT=8080;
ServerSocket server=null;
Socket client=null;
try {
server=new ServerSocket(PORT); 
System.out.println("Web Server is listening on port "+server.getLocalPort());
for (;;) {
client=server.accept(); //接受客戶機的連接請求
new ConnectionThread(client,i).start(); 
i++;
}
} catch (Exception e) {System.out.println(e);}
}
}

/* ConnnectionThread類完成與一個Web瀏覽器的通信 */
class ConnectionThread extends Thread {
Socket client; //連接Web瀏覽器的socket字
int counter; //計數器
public ConnectionThread(Socket cl,int c) {
client=cl;
counter=c;
}
public void run() //線程體
{
try {
String destIP=client.getInetAddress().toString(); //客戶機IP地址
int destport=client.getPort(); //客戶機端口號
System.out.println("Connection "+counter+":connected to "+destIP+" on port "+destport+".");
String content="Connection "+counter+":connected to "+destIP+" on port "+destport+",";
writelog(content);
PrintStream outstream=new PrintStream(client.getOutputStream());
DataInputStream instream=new DataInputStream(client.getInputStream());
String inline=instream.readLine(); //讀取Web瀏覽器提交的請求信息
System.out.println("Received:"+inline);
if (getrequest(inline)) { //如果是GET請求
String filename=getfilename(inline);
File file=new File(filename);
if (file.exists()) { //若文件存在,則將文件送給Web瀏覽器
String sid=getsessionid(inline);//獲取web瀏覽器提交的sessionid
sid=session(sid);//處理sessionid
System.out.println(filename+" requested.");

outstream.println("HTTP/1.0 200 OK");
outstream.println("MIME_version:1.0");
outstream.println("Content_Type:text/html");
int len=(int)file.length();
outstream.println("Content_Length:"+len);
outstream.println("");
sendfile(outstream,file); //發送文件
outstream.flush();
} else { //文件不存在時
String notfound="<html><head><title>Not Found</title></head><body><h1>Error 404-file not found</h1></body></html>";
outstream.println("HTTP/1.0 404 no found");
outstream.println("Content_Type:text/html");
outstream.println("Content_Length:"+notfound.length()+2);
outstream.println("");
outstream.println(notfound);
outstream.flush();
}
}
long m1=1; 
while (m1<11100000) {m1++;} //延時
client.close();
} catch (IOException e) {
System.out.println("Exception:"+e);
}
}

/* 獲取請求類型是否為“GET” */
boolean getrequest(String s) { 
if (s.length()>0)
{
if (s.substring(0,3).equalsIgnoreCase("GET")) return true;
}
return false;
}

/* 獲取要訪問的文件名 (可以判斷三種請求方式)*/
String getfilename(String s) {
String f=s.substring(s.indexOf(' ')+1);
int i=f.indexOf(";");
if(i!=-1)
 {f=f.substring(0,i);/*GET 語句為:GET /index.html;jssession=57433735734 HTTP/1.1 */
  if (f.charAt(0)=='/')
  f=f.substring(1);
 }
else 
{
f=f.substring(0,f.indexOf(' ')); /*GET 語句為:GET /index.html HTTP/1.1 */
if (f.charAt(0)=='/')
f=f.substring(1);
} 
if (f.equals("")) 
f="index.html";/*GET 語句為:GET / HTTP/1.1 */
return f;
}
 static void writelog(String content) {
String fileName = "./log.txt";
Date date=new Date();
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String logcontent = content+df.format(date).toString();
//按方法A追加文件
appendMethodA(fileName, logcontent);
appendMethodA(fileName, "\n\r");
//顯示文件內容
}

/*使用RandomAccessFile方法追加文件*/
public static void appendMethodA(String fileName, String content){
try {
// 打開一個隨機訪問文件流,按讀寫方式
RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");
// 文件長度,字節數
long fileLength = randomFile.length();
//將寫文件指針移到文件尾。
randomFile.seek(fileLength);
randomFile.writeBytes(content);
randomFile.close();
} catch (IOException e){
e.printStackTrace();
}
}
/* 獲取sessionid */
String getsessionid(String s)
{String sid=s;
int i=sid.indexOf("=");
try{
if(i!=-1)
       {sid=sid.substring(i+1);
        sid=sid.substring(0,sid.indexOf(' '));
        }
 else 
        sid=null;
}catch(Exception e){
   System.out.println("e.toString()");
} 
System.out.println("sessionid="+sid);
 return sid;
}



/*把指定文件發送給Web瀏覽器 */ 
void sendfile(PrintStream outs,File file) {
try {
DataInputStream in=new DataInputStream(new FileInputStream(file));
int len=(int)file.length();
byte buf[]=new byte[len];
in.readFully(buf);//將文件數據讀入buf中
outs.write(buf,0,len);
outs.flush();
in.close();
} catch (Exception e) {
System.out.println("Error retrieving file.");
System.exit(1);
}
}
// session處理
String session(String sessionid)
{   Date date=new Date();
    SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String timenow =df.format(date).toString();
     ghashtable HT=new ghashtable();
     String sid=sessionid;
     if(sid==null)
     { sid= createsession( timenow, HT.HT);
       System.out.println("create a a new session and the sessionid is "+sid);
     }
else
    {try{
         if(searchsession(sid,HT.HT))
        {System.out.println("yes! this session cell exsit");}
       else
        {sid= createsession( timenow,HT.HT);
        System.out.println("cannot find the session information,now create a new!"); 
        System.out.println("create a a new session and the sessionid is "+sid);
       }}catch(Exception e){System.out.println(e.toString());}
     }
return sid;
}
//創建session(用hashtable實現)
String createsession(String timenow,Hashtable ht)
{
  String s=timenow;
 //Hashtable cht= ht;
 ssvalue  va=new ssvalue();
 sskey ke= new sskey();
 va.s1=s;
 String temp=(String)ke.sskey();
 ht.put(temp,va.ssvalue());
 return temp;
}
//搜索session信息 用get()實現
boolean searchsession(String sessionid,Hashtable ht)
{ String sid= sessionid;
   // Hashtable sht=ht;
 String temp=(String)ht.get(sid);
  if (temp==null)
     {return false;}
  else
    {return true;}  
}
}
//定義加入hashtable(必須以類的形式)中的值
class ssvalue{
  String s1;
  String ssvalue()
 {
          return s1;
 }
                           }
//定義加入hashtable(必須以類的形式)中的檢索碼(這就是sessionid)
//產生8位隨機字符串
class sskey
{
  String sskey()
   {
    char[] cc = new char[10]; 
      for (int i = 0; i<cc.length; i++)
      {
           while(cc[i]<'A'||cc[i]>'Z')
                cc[i]=(char)(Math.random()*(int)'Z');
       }//end for
      String str = new String("");
       for (int i = 0; i<cc.length; i++)
       str += cc[i];
        return str;
     }
}
//用類來解決多線程公用hashtable的問題
class  ghashtable{
 static final  Hashtable  HT=new Hashtable();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩丝袜情趣美女图片| 国产乱码一区二区三区| 国产亚洲自拍一区| 69p69国产精品| 日韩一区二区三区免费看| 欧美精品 日韩| 99久久综合色| www.激情成人| 99久久国产免费看| 色综合久久九月婷婷色综合| 成人午夜激情影院| 懂色av中文一区二区三区| 国产一区二区精品在线观看| 国产综合一区二区| 粉嫩嫩av羞羞动漫久久久| 成人高清在线视频| 色哟哟国产精品| 欧美欧美欧美欧美首页| 欧美性色欧美a在线播放| 波多野结衣亚洲| 91老司机福利 在线| 欧美亚洲一区二区三区四区| 在线电影国产精品| 久久久另类综合| 综合久久给合久久狠狠狠97色 | 在线不卡a资源高清| 在线不卡中文字幕播放| www国产亚洲精品久久麻豆| 国产精品久久网站| 亚洲国产中文字幕| 国产伦精一区二区三区| caoporn国产精品| 9191久久久久久久久久久| 亚洲精品在线免费观看视频| 亚洲天堂成人网| 免费成人你懂的| 97se亚洲国产综合自在线不卡 | 欧美日韩国产一二三| 日韩欧美一区二区免费| 久久久久久久网| 亚洲一二三区不卡| 成人做爰69片免费看网站| 欧美性欧美巨大黑白大战| 久久久美女艺术照精彩视频福利播放 | 欧美精品日韩综合在线| 日韩免费观看高清完整版| 最近日韩中文字幕| 极品少妇xxxx精品少妇偷拍| 色综合天天天天做夜夜夜夜做| 91精选在线观看| 中文字幕视频一区| 韩国欧美一区二区| 9191久久久久久久久久久| 成人免费在线观看入口| 精品在线免费观看| 欧美日韩免费一区二区三区视频| 久久精品一区二区三区不卡牛牛| 亚洲成a人在线观看| 91在线小视频| 国产精品国产自产拍高清av王其| 麻豆国产精品777777在线| 欧美亚洲国产bt| 中文字幕一区二区三区不卡在线 | 成人欧美一区二区三区小说 | 亚洲综合在线观看视频| 成人午夜激情在线| 久久久亚洲精品一区二区三区| 日韩成人一区二区| 欧美日韩国产首页| 亚洲成a人片在线观看中文| 97成人超碰视| 亚洲激情网站免费观看| 91色视频在线| 亚洲欧美日韩精品久久久久| 成人综合在线视频| 国产午夜亚洲精品羞羞网站| 国产在线观看免费一区| 精品国产一区a| 国产在线精品一区在线观看麻豆| 欧美一级片免费看| 久久99精品国产.久久久久久 | 国产专区欧美精品| 亚洲精品一区二区三区99| 九九九久久久精品| 精品国产免费久久| 风流少妇一区二区| 日韩毛片精品高清免费| 成人动漫中文字幕| 亚洲精品中文在线观看| 欧美日韩日本视频| 免费成人美女在线观看.| 日韩久久久精品| 粉嫩av亚洲一区二区图片| 中文一区二区完整视频在线观看| 成人污视频在线观看| 亚洲乱码中文字幕综合| 欧美日韩一区二区三区四区五区| 三级欧美韩日大片在线看| 日韩手机在线导航| 国产精品1区2区3区| 18成人在线观看| 欧美日韩国产大片| 国产综合色产在线精品| 国产精品久久久久7777按摩| 欧美影院精品一区| 久久爱另类一区二区小说| 国产精品天美传媒| 欧美久久久一区| 国产精品亚洲专一区二区三区 | 日韩av电影一区| 久久精品网站免费观看| 色妹子一区二区| 久久99蜜桃精品| 日本强好片久久久久久aaa| 精品欧美黑人一区二区三区| 高清久久久久久| 免费视频最近日韩| 国产精品毛片大码女人| 欧美精品在线观看播放| 福利视频网站一区二区三区| 五月婷婷另类国产| 中文字幕中文字幕一区| 日韩精品中文字幕在线不卡尤物| 97se亚洲国产综合自在线不卡| 日韩av高清在线观看| 亚洲免费在线看| 国产夜色精品一区二区av| 7777精品伊人久久久大香线蕉| 波多野结衣欧美| 国产一区999| 日韩国产欧美在线视频| 成人免费一区二区三区在线观看| 日韩欧美一级在线播放| 91福利在线看| 97久久超碰国产精品| 国产精品中文字幕一区二区三区| 三级不卡在线观看| 一区二区国产视频| 最近日韩中文字幕| 国产精品网站在线播放| 久久亚洲免费视频| 精品久久久久久亚洲综合网| 欧美另类高清zo欧美| 日本韩国欧美国产| 91网页版在线| 91色在线porny| 一本一本大道香蕉久在线精品| 成人免费不卡视频| 粉嫩av一区二区三区在线播放| 国产一区二区三区在线观看精品 | 91精品一区二区三区久久久久久| 欧洲一区在线电影| 91麻豆123| 91成人免费在线| 色乱码一区二区三区88| 一本久久a久久精品亚洲| 91网站在线播放| 91电影在线观看| 欧美高清hd18日本| 91精品综合久久久久久| 91精品国产麻豆| 日韩免费性生活视频播放| 日韩精品影音先锋| 26uuu久久天堂性欧美| 欧美精品一区二区精品网| 精品国产乱码久久久久久牛牛 | 国产成人啪免费观看软件| 国产一区二区三区美女| 国产精品18久久久久久久久久久久| 韩国欧美国产1区| 国产成人99久久亚洲综合精品| 成人av资源在线观看| 色综合久久综合网97色综合 | 69堂精品视频| 精品成a人在线观看| 亚洲国产激情av| 亚洲欧美国产高清| 日韩精品乱码免费| 国产精品一区久久久久| 成人网页在线观看| 欧美自拍丝袜亚洲| 欧美tk丨vk视频| 亚洲色图制服丝袜| 三级精品在线观看| 粉嫩一区二区三区在线看| 欧美色图12p| 久久久久久久网| 亚洲国产精品天堂| 国产资源在线一区| 欧美在线观看一区| 精品av久久707| 亚洲图片欧美色图| 国产精华液一区二区三区| 91在线一区二区| 久久久美女毛片| 日本网站在线观看一区二区三区| 成人一区二区视频| 91麻豆精品国产91久久久资源速度| 久久久精品2019中文字幕之3| 亚洲一区二区三区四区在线|