一个简单的服务器实现,采用Java语言。
/**
*
*/
package iotest.serversocket;
import java.io.File;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
/**
* @author Brandon B. Lin
*
*/
public class JHTTP extends Thread {
private File documentRootDirectory;
private String indexFileName = "index.html";
private ServerSocket server;
private int threadCount = 50;
public JHTTP(File documentRootDirectory, int port, String indexFileName)
throws IOException {
if (!documentRootDirectory.isDirectory()) {
throw new IOException(documentRootDirectory
+ " does not exist as a directory");
}
this.documentRootDirectory = documentRootDirectory;
this.indexFileName = indexFileName;
this.server = new ServerSocket(port);
}
public JHTTP(File documentRootDirectory, int port) throws IOException {
this(documentRootDirectory, port, "index.html");
}
public JHTTP(File documentRootDirectory) throws IOException {
this(documentRootDirectory, 80);
}
@Override
public void run() {
createThreadPools();
logServerInfo(server);
acceptConnection();
}
private void createThreadPools() {
for (int i = 0; i < threadCount; i++) {
Thread t = new Thread(new RequestProcessor(documentRootDirectory,
indexFileName));
t.start();
}
}
private void logServerInfo(ServerSocket server) {
System.out.println("Accepting connections on port "
+ server.getLocalPort());
System.out.println("Document Root: " + documentRootDirectory);
}
private void acceptConnection() {
while (true) {
try {
Socket request = server.accept();
RequestProcessor.processRequest(request);
} catch (IOException exception) {
}
}
}
public static void main(String[] args) {
File root = new File("F:\\Java\\document\\docs");
int port = 80;
startServer(root, port);
<