Java实现一个简单的Web服务器

package com.ch10_network;

import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * 一个简单的Web服务器
 * 浏览器在访问一个web服务器的时候,本质上也是发了一次TCP连接的请求,然后服务器端根据请求的URL不同,返回不同的结果
 * 只不过,它们的通信存在一些特殊的规定,例如,HTTP状态值是200则代表请求成功,返回的HTML语言的文本等。浏览器会根据
 * 返回的HTML代码,做出相应的解析和效果展示。
 * 毫无疑问,Web服务器肯定也是支持多线程的。这里,有一个简单的Web服务器端程序示例,它始终在浏览器中打印一句:
 * hello this is my web page.详细代码如下。
 * @author js
 *
 */
public class WebServer {
	public static void main(String[] args) throws Exception {
		ServerSocket ss = new ServerSocket(80);
		Socket s = null;
		while((s=ss.accept())!=null) {
			new HTTPThread(s).start();
		}
		ss.close();
	}
}
class HTTPThread extends Thread{
	private Socket socket;
	public HTTPThread(Socket socket) {
		super();
		this.socket=socket;
	}
	public void run() {
		try {
			OutputStream os = socket.getOutputStream();
			PrintWriter pw = new PrintWriter(os);
			pw.println("<html>");
			pw.println("<body>");
			pw.println("hello this is my web page");
			pw.println("</body>");
			pw.println("</html>");
			pw.flush();
			pw.close();
			socket.close();
		}catch (IOException e) {
			e.printStackTrace();
		}
	}
}


运行上述代码,浏览器访问:http://localhost:80/,即可看到效果。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值