java web多线程开发实例_java编写一个多线程的简单Web服务器

该博客介绍了一个简单的Java Web多线程服务器的实现,通过ServerSocket监听指定端口,接受客户端请求并创建线程进行处理。主线程负责接收连接,分线程处理HTTP GET请求,读取并响应客户端的HTML文件请求。通过分析请求头信息,服务器能够打开并发送文件内容给浏览器。程序还包含了处理文件不存在的情况,并提供了测试步骤和完整代码。
摘要由CSDN通过智能技术生成

根据http协议的会话过程,实验实现了GET请求的web服务器的方法:

通过创建ServerSocket类对象。侦听用户指定端口,等待并接受客户机请求到端口。创建与Socket相关联的输入流输出流,然后读取客户机的请求信息。若请求类型为GET,则从请求信息中获取所访问的HTML文件名:如果文件存在,则打开,把HTML头信息和文件内容通过Socket传回给浏览器,然后关闭,否则发送错误提示。

1.主线程设计:

主线程的设计就是在主线程httpserver类中实现了服务器端口的侦听,服务器接受一个客户端请求之后创建一个线程实例处理请求:主要代码:

public static void main(String args[]) {

//端口信息

int port;

ServerSocket server_socket;

//读取服务器端口号

try {

port = Integer.parseInt(args[0]);

}

catch (Exception e) {

//为默认端口

port = 8888;

}

try {

//监听服务器端口,等待连接请求

server_socket = new ServerSocket(port);

System.out.println("httpServer running on port " +

server_socket.getLocalPort());

//显示启动信息

while(true) {

//服务器接收线程

Socket socket = server_socket.accept();

System.out.println("New connection accepted " +

socket.getInetAddress() +

":" + socket.getPort());

2.连接处理分线程设计

在分线程httpRequestHandler类中实现了http的处理,以下代码中设计的类实现了Runnable接口。

class httpRequestHandler implements Runnable {

final static String CRLF = "\r\n";

Socket socket;//套接字获得

InputStream input;//输入流

OutputStream output;//输出流

BufferedReader br;

//构造方法

public httpRequestHandler(Socket socket)

throws Exception {

this.socket = socket;

this.input = socket.getInputStream();//

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值