我们都知道,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();//获得输出流