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

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

?? threadedserver.java~

?? 用java編寫的http的client和server程序
?? JAVA~
字號:
/**
 * @(#)ThreadedServer.java
 *
 * @author Xia Chang'an
 * @version 1.0
 */
import java.net.*;
import java.io.*;
import java.util.*;

/**
 * This is a server creating a socket with port number 8000 
 * and waits for incoming requests. 
 * I can work With multiple threads.
 */
public class ThreadedServer 
{
	/**
	 * the main function.
	 */
	public static void main(String[] argv)throws Exception
	{
		/**
	     * The server socket banding to port 8000.
	     */
		ServerSocket listenSocket = new ServerSocket(8000);
		
		/*
		 * Print the prompt message in the terminal.
		 */
		System.out.println("The server is now waiting for request...");
		
		while(true)
		{
			
			Socket connectionSocket = listenSocket.accept();
			
			System.out.println("Accepting Connection...\n");
			
			// Start a thread to handle the connection.

			new ServerThread(connectionSocket);
			
		}

	}
}

class ServerThread implements Runnable 
{
	/**
	 * The socket which promot the thread.
	 */
	private Socket socket;
	
	private static String CRLF = "\r\n";
	
	/**
	 * The request message.
	 */
	private String requestMsg;

	/**
	 * the Constructor
	 * @param s the socket
	 */
	public ServerThread(Socket s) 
	{
		Thread t;
		this.socket = s;
		t = new Thread(this, "Handler Thread");
		t.start();
		 
	}


	public void run() 
	{
		try 
		{
			String requestMessage = "";

			boolean readFinish = false;

			/*
			 * The buffer reader used to get request message from the client.
			 */
			DataInputStream inFromClient = new DataInputStream(socket
					.getInputStream());

			/*
			 * the output stream used to export to the client terminal.
			 */
			DataOutputStream outToClient = new DataOutputStream(
					socket.getOutputStream());

			/*
			 * get the request message.
			 */
			requestMessage = inFromClient.readLine().toString();
			

			/*
			 * parse the ruquest message.
			 */
			StringTokenizer tokenizedline = new StringTokenizer(requestMessage);

			String command = tokenizedline.nextToken();

			/*
			 * If it is a GET request.
			 */
			if (command.equals("GET")) 
			{
				String url = tokenizedline.nextToken();
				
				processGet(outToClient, url);

			} else if (command.equals("PUT")) 
			{
				int len = 0;
				
				String url = tokenizedline.nextToken();
	
				StringTokenizer tokens = new StringTokenizer(requestMessage,CRLF);

				while (tokens.hasMoreTokens()) 
				{
					String token = tokens.nextToken();
					if (token.startsWith("Content-Length:")) 
					{
						String lengthStr = token
								.substring(token.indexOf(' ') + 1);
						len = new Integer(lengthStr).intValue();
						break;
					}
				}

				if (len > 0) 
				{
					
					processPut(inFromClient, outToClient, url, len);
				} else 
				{
					outToClient.write(buildErrorPage(400, "Bad Request.").getBytes());
				}
			} else 
			{
				outToClient.write((buildErrorPage(501, "Not Implemented")).getBytes());
			}
		}catch(IOException e)
		{
			e.printStackTrace();
		}

	}
	
	private void processPut(DataInputStream inFromClient,
			DataOutputStream outToClient, String filename, int len) 
	{
		try {
			
			if (filename.startsWith("/") == true)
				filename = filename.substring(1);

			File file = new File(filename);
			
			String feedback;
			
			if (file.exists()) 
			{
				if (!file.isFile()) 
				{
					outToClient.write((buildErrorPage(403, "Forbidden")).getBytes());
					return;
					
				} else 
				{
					feedback = buildErrorPage(200, "OK");
				}
			} else 
			{
				feedback = buildErrorPage(201, "Created");
			}

			/**
			 * Create a file stream.
			 */
			FileOutputStream fstream = new FileOutputStream(file);
			
			byte[] buffer = new byte[1000];
			int count = 0;
			
			while (count < len && ((count += inFromClient.read(buffer)) != -1)) 
			{
				fstream.write(buffer);
			}
			/**
			 * Be sure to flush the output stream.
			 */
			fstream.flush();
			outToClient.write(feedback.getBytes());
			
		} catch (IOException ioe) 
		{
			ioe.printStackTrace();
		}
	}
	
	private void processGet(DataOutputStream outToClient, String filename) {
		try {
			if (filename.startsWith("/") == true)
				filename = filename.substring(1);

			File file = new File(filename);
			/**
			 * if the file not found
			 */
			if (!file.isFile()) {
				outToClient.write(buildErrorPage(404, "Not Found " + filename)
						.getBytes());
			} else {
				int numberOfBytes = (int) file.length();

				FileInputStream inFile = new FileInputStream(filename);

				byte[] fileInBytes = new byte[numberOfBytes];

				inFile.read(fileInBytes);

				outToClient.writeBytes("HTTP/1.0 200 OK" + CRLF);

				if (filename.endsWith(".jpg") || filename.endsWith(".JPG"))
					outToClient.writeBytes("Content-type:" + "image/jpeg"
							+ CRLF);

				if (filename.endsWith(".gif") || filename.endsWith(".GIF"))
					outToClient
							.writeBytes("Content-type:" + "image/gif" + CRLF);

				if (filename.endsWith(".htm") || filename.endsWith(".html"))
					outToClient
							.writeBytes("Content-type:" + "text/html" + CRLF);

				outToClient
						.writeBytes("Content-Length:" + numberOfBytes + CRLF);

				outToClient.writeBytes(CRLF);

				outToClient.write(fileInBytes, 0, numberOfBytes);

			}
		} catch (IOException e) 
		{
			e.printStackTrace();
		}

	}
	
	private String buildErrorPage(int ErrorNo, String msg) 
	{
		String content = "<html>" + CRLF + "<head>" + CRLF
				+ "   <title>Java Http 1.0 Server- Error report </title>"
				+ CRLF + "</head>" + CRLF + "<body>" + CRLF
				+ "   <h1>HTTP Status " + ErrorNo + "\n" + msg + "</h1>" + CRLF
				+ "</body>" + "</html>" + CRLF;

		String header = "HTTP/1.0" + " " + ErrorNo + " " + msg + CRLF;

		header += ("Content-type: text/html" + CRLF);

		header += ("Content-Length:" + content.length() + CRLF + CRLF);

		return (header + content);
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产入口| 中文字幕一区二区三区在线观看 | 亚洲三级在线免费| 日产精品久久久久久久性色| 国产激情视频一区二区三区欧美| 欧美丝袜丝交足nylons| 国产精品久久久久久亚洲毛片 | 欧美一区二区福利视频| 中文字幕亚洲成人| 国产精品一区一区三区| 日韩免费一区二区| 亚洲国产精品嫩草影院| 9l国产精品久久久久麻豆| www国产成人| 美女网站在线免费欧美精品| 色综合久久88色综合天天免费| 久久久久国产精品麻豆| 久久机这里只有精品| 91精品国产乱码久久蜜臀| 亚洲精品视频免费看| 成人av在线播放网站| 国产日韩欧美激情| 国产白丝网站精品污在线入口| 日韩一区二区免费在线电影| 婷婷开心激情综合| 欧美人与z0zoxxxx视频| 亚洲综合在线免费观看| 91首页免费视频| 亚洲欧美在线另类| 99re66热这里只有精品3直播| 亚洲国产精品国自产拍av| 国产成人精品免费一区二区| 国产亚洲欧美中文| 国产剧情一区二区三区| 国产日韩欧美精品一区| 成人三级在线视频| 日韩毛片高清在线播放| 在线视频国内一区二区| 亚洲电影一区二区三区| 欧美欧美欧美欧美首页| av一区二区三区在线| 中文字幕中文字幕在线一区| 91猫先生在线| 亚洲1区2区3区视频| 51精品国自产在线| 久久精品二区亚洲w码| 久久一日本道色综合| 成人黄动漫网站免费app| 亚洲日本va午夜在线电影| 在线观看成人小视频| 青娱乐精品视频| 欧美精品一区二区三区一线天视频| 国产精品中文字幕一区二区三区| 中文字幕第一区二区| 色国产精品一区在线观看| 午夜欧美一区二区三区在线播放| 日韩欧美国产不卡| av一区二区三区四区| 亚洲制服欧美中文字幕中文字幕| 91麻豆精品国产自产在线观看一区| 久久av中文字幕片| 1024亚洲合集| 日韩午夜小视频| 99九九99九九九视频精品| 天堂av在线一区| 中文字幕不卡三区| 91精品在线观看入口| 成人深夜视频在线观看| 日韩国产成人精品| 综合久久久久久久| 欧美一卡二卡在线| 一本大道av一区二区在线播放| 天天色综合天天| 国产精品二三区| 欧美一区二区人人喊爽| 99久久99久久精品国产片果冻| 全国精品久久少妇| 中文字幕亚洲一区二区av在线 | 国产女同互慰高潮91漫画| 欧美丝袜自拍制服另类| 成年人国产精品| 日韩电影一区二区三区四区| 亚洲日本电影在线| 久久久99免费| 日韩欧美国产1| 欧美日韩精品综合在线| 99精品久久只有精品| 国产二区国产一区在线观看| 日韩精品欧美精品| 亚洲黄一区二区三区| 国产精品午夜在线观看| 欧美v亚洲v综合ⅴ国产v| 精品视频1区2区3区| 91丝袜高跟美女视频| 成人av网站免费观看| 国产一区在线不卡| 看国产成人h片视频| 日韩激情在线观看| 婷婷夜色潮精品综合在线| 亚洲精品国产无天堂网2021| 国产精品久久久久影院老司| 久久色成人在线| 日韩欧美一二区| 欧美一激情一区二区三区| 欧美性猛交xxxxxx富婆| 欧美一a一片一级一片| 色8久久精品久久久久久蜜| 成人高清视频在线| 不卡一区二区中文字幕| 成人手机电影网| 99亚偷拍自图区亚洲| 成人国产精品免费| 99久久婷婷国产综合精品电影 | 中文字幕欧美国产| 中文字幕欧美三区| 综合色天天鬼久久鬼色| 亚洲丝袜自拍清纯另类| 亚洲色欲色欲www在线观看| 亚洲欧美日韩国产综合| 亚洲精品欧美激情| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲人成网站色在线观看| 曰韩精品一区二区| 天堂久久一区二区三区| 美女精品一区二区| 国产激情91久久精品导航 | 欧美国产精品一区二区三区| 中文字幕不卡三区| 国产精品成人在线观看| 亚洲激情图片一区| 丝袜脚交一区二区| 精品一区二区三区在线观看国产| 久草精品在线观看| 成人免费高清视频| 91黄色激情网站| 日韩欧美在线1卡| 久久精品欧美日韩精品| 国产精品无圣光一区二区| 亚洲激情第一区| 美女脱光内衣内裤视频久久网站 | 337p亚洲精品色噜噜| 欧美大肚乱孕交hd孕妇| 国产精品国产三级国产普通话三级| 亚洲九九爱视频| 麻豆国产一区二区| 99精品视频一区二区三区| 欧美精品亚洲一区二区在线播放| 亚洲精品一区二区在线观看| 国产精品二三区| 美女一区二区久久| 91香蕉视频污| 日韩你懂的在线播放| 亚洲视频一区二区在线| 麻豆成人久久精品二区三区红 | kk眼镜猥琐国模调教系列一区二区| 91久久精品一区二区二区| 欧美mv日韩mv亚洲| 一区二区三区在线视频观看58| 久久电影国产免费久久电影| 色综合久久久久| 久久亚洲二区三区| 日韩成人精品视频| 91片黄在线观看| 久久久久久久久免费| 丝袜美腿亚洲色图| 91麻豆福利精品推荐| 久久夜色精品国产欧美乱极品| 亚洲午夜电影在线观看| 成人av动漫网站| 国产性天天综合网| 久久aⅴ国产欧美74aaa| 精品视频1区2区3区| 国产精品久久毛片a| 激情五月婷婷综合网| 6080国产精品一区二区| 亚洲品质自拍视频网站| 粉嫩绯色av一区二区在线观看| 91精品国产综合久久精品图片 | 最新国产精品久久精品| 紧缚奴在线一区二区三区| 欧美美女bb生活片| 一区二区三区免费网站| 99re热这里只有精品视频| 国产精品区一区二区三| 国产成人精品影院| 久久免费视频色| 国产一区二区女| 久久久久久久免费视频了| 狠狠色狠狠色综合| 欧美成人一区二区三区片免费 | 国产伦精品一区二区三区免费| 日韩视频一区二区三区| 午夜在线成人av| 欧美日韩成人在线| 亚洲成精国产精品女| 日本韩国精品在线| 亚洲欧美激情插 | 成人天堂资源www在线| 国产清纯在线一区二区www| 国产盗摄一区二区|