急求一个WEB服务器! 现要做一个基础的WEB服务器,多线程的,用HTTP1.0做,急求。小弟刚入门不久,求各为高手大哥帮忙。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import j ava.io.*;import j ava.net.*;import java.util.*;class Webserver { public static void main(String argv[]) throws Exception { String requestMessageLine; String fileName; ServerSocket listenSocket = new ServerSocket(6789); Socket connectionSocket = listenSocket.accept(); BufferedReader inFromClient = new BufferedReader(new InputStreamReader( connectionSocket.get!nputStream())); DataOutputStream outToClient = new DataOutputStream( connectionSocket.getOutputStream()); requestMessageLine = inFromClient.readLine(); StringTokenizer tokenizedLine = new StringTokenizer(requestMessageLine); if (tokenizedLine.nextToken().equals("GET")){ fileName = tokenizedLine.nextToken(); if (fileName.startsWith("/") == true ) fileName = fileName.substring(1); File file = new File(fileName); int numOfBytes = (int) file.length(); FileInputStream inFile = new FileInputStream (fileName); byte[] fileInBytes = new byte[numOfBytes]; inFile.read(fileInBytes); outToClient.writeBytes( "HTTP/I.0 200 Document Follows\r\n"); if (fileName.endsWith(".jpg")) outToClient.writeBytes("Content-Type:image/jpeg\r\n"); if (fileName.endsWith(".gif")) outToClient.writeBytes("Content-Type:image/gif\r\n"); outToClient.writeBytes("Content-Length: " + numOfBytes + "\r\n"); outToClient.writeBytes("\r\n") ; outToClient.write(fileInBytes, 0, numOfBytes); connectionSocket.close(); } else System.out.println("Bad Request Message"); }}即把这个改成多线程的,请问怎么改啊???? while(true) { Socket connectionSocket = listenSocket.accept(); new Thread( public void run(){ //单个请求操作放这里 };).start();} HttpClient,或者直接用Tomcat就是了 求总数的函数怎么写 帮帮忙,看看代码问题啊 一句不明白的话 请高手推荐一款适合程序员的笔记本8k-10k 如何通过反射遍历包中存在哪些类? 关于保存table的字体信息 小弟学JAVA碰到难题,请大家帮忙! 在linux(redhat8.0)上使用java.awt.Font是不是需要Xwindow支持 多线程下,机器性能太好,导致内存溢出?? 下面的代码用eclipse compile为什么不行,我是完全从一个视频里抄过来的,视频里用的是ultra editor写的。是不是我一定要把class分开 哪位大侠知道怎么让swt的一个Composite变成透明的?急! 关于包?
import j ava.net.*;
import java.util.*;
class Webserver {
public static void main(String argv[]) throws Exception
{
String requestMessageLine;
String fileName;
ServerSocket listenSocket = new ServerSocket(6789);
Socket connectionSocket = listenSocket.accept();
BufferedReader inFromClient =
new BufferedReader(new InputStreamReader(
connectionSocket.get!nputStream()));
DataOutputStream outToClient =
new DataOutputStream(
connectionSocket.getOutputStream());
requestMessageLine = inFromClient.readLine();
StringTokenizer tokenizedLine =
new StringTokenizer(requestMessageLine); if (tokenizedLine.nextToken().equals("GET")){ fileName = tokenizedLine.nextToken(); if (fileName.startsWith("/") == true )
fileName = fileName.substring(1);
File file = new File(fileName); int numOfBytes = (int) file.length(); FileInputStream inFile = new FileInputStream (fileName); byte[] fileInBytes = new byte[numOfBytes]; inFile.read(fileInBytes);
outToClient.writeBytes(
"HTTP/I.0 200 Document Follows\r\n");
if (fileName.endsWith(".jpg"))
outToClient.writeBytes("Content-Type:image/jpeg\r\n");
if (fileName.endsWith(".gif"))
outToClient.writeBytes("Content-Type:image/gif\r\n");
outToClient.writeBytes("Content-Length: " +
numOfBytes + "\r\n");
outToClient.writeBytes("\r\n") ;
outToClient.write(fileInBytes, 0, numOfBytes);
connectionSocket.close();
}
else System.out.println("Bad Request Message");
}
}即把这个改成多线程的,请问怎么改啊????
Socket connectionSocket = listenSocket.accept();
new Thread( public void run(){
//单个请求操作放这里
};).start();
}