笔试题14:用TCP通信模型创建一个Web服务器(源码)

     我们都知道,IIS、Apache和tomcat等Web服务器可以用来创建Web站点,负责接受客户端浏览器的HTTP请求。那么,他们是如何实现的呢?其实基本原理是采用TCP通信模型。下面给出一个采用Java的TCP编程API创建的简易Web服务器的例子。

闲话少说,附上源码:

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


public class WebService {

	/**
	 * @param args
	 * @throws Exception 
	 */
	public static void main(String[] args) throws Exception {
		//用端口号创建一个ServerSocket对象,监听Web的端口80
		ServerSocket ss = new ServerSocket(80);
		//开始循环监听来自客户端的请求
		Socket s = null;
		while((s = ss.accept()) != null){
			new HTTPThread(s).start();//开始一个新的线程
		}
		ss.close();
	}
}
//线程类,HTTP处理线程
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);//创建PrintWriter对象
			//往输出流写出当前的时间
			pw.println("<html>");
			pw.println("<body>");
			pw.println("hello world!");
			pw.println("</body>");
			pw.println("</html>");
			pw.flush();//清空缓存
			//关闭输出流和Socket
			pw.close();
			socket.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

启动程序,在浏览器中输入“http://localhost/”,这是出现了下图结果:



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值