java编写服务器_用Java编写一个服务器

一个简单的服务器实现,采用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);

<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值