⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 requestprocesser.java

📁 ssd8 java socket编程实验的代码
💻 JAVA
字号:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Date;

public class RequestProcesser {

	private InputStream input;
	private String output;
	private String dir;
	private String type;
	private String accept;
	private String accept_Language;
	private String accept_Encoding;
	private String user_Agent;
	private String host;
	private String connection;
	private byte[] content ;

	public RequestProcesser(InputStream input) {
		super();
		this.input = input;
	}

	public String getOutput() {
		return output;
	}

	public void setOutput(String output) {
		this.output = output;
	}

	public byte[] proccess() throws IOException {
		BufferedReader in = new BufferedReader(new InputStreamReader(input));
		try {
			String get = in.readLine();
			dir = get.split(" ")[1];
			if (dir.endsWith("jpg|gif"))
				type = "application/binary";
			else
				type = "text/html";
			File a = new File(dir.substring(1));
			FileInputStream cp = new FileInputStream(a);
			content = new byte[cp.available()];
			cp.read(content);
			accept = in.readLine();
			accept_Language = in.readLine();
			accept_Encoding = in.readLine();
			user_Agent = in.readLine();
			host = in.readLine();
			connection = in.readLine();
			System.out.println(get);
		} catch (IOException e) {
			e.printStackTrace();
		}
		String a;
		StringBuffer b = new StringBuffer();
		a = in.readLine();
		while (in.ready()) {
			b.append(a);
			b.append("\n");
			a = in.readLine();
		}
	
		String adf = "HTTP/1.1 200 OK\nConnection:close\nDate:"
				+ new Date().toGMTString() + "\nServer:sdg\n"
				+ "Last-Modified:" + new Date().toGMTString()
				+ "\nContent-Length:" + content.length + "\nContent-Type:" + type
				+ "\n\n";
		byte[] result = new byte[adf.length()+content.length];
		int i=0;
		for(byte c:adf.getBytes())
		{
			result[i++] = c;
		}
		for(byte c:content)
		{
			result[i++] = c;
		}
		return result;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -