利用jdk简单的模拟请求响应(一)

简单的利用jdk 的socket和io流,模拟浏览器请求和响应

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Server {

	public static void main(String[] args) {
		ServerSocket serverSocket = null;
		Socket client = null;
		
		try {
			serverSocket = new ServerSocket(9999);
			System.out.println("服务器初始化完毕,初始化注册端口是"+9999);
			while(true){
				client = serverSocket.accept();
				InputStream in = client.getInputStream();
				byte[] buff = new byte[1024];
				int len = in.read(buff);
				if(len>0){
					String msg = new String(buff,0,len);
					System.out.println(msg);
					
					OutputStream os = client.getOutputStream();
					SimpleDateFormat formt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
					StringBuffer sb = new StringBuffer();
					
					sb.append("HTTP/1.1 200 OK\n");
					sb.append("Content-Type: text/html;charset=UTF-8\n");
					sb.append("\r\n");
					String html = "<html><head><title>各位朋友!</title></head><body>当前时间:"+
					              "<font size='14' color='blue'>"+
							       formt.format(new Date())+
							       "</font>"+
							       "<br/>服务器回复:<font size='14' color='blue'></font></body></html>";
					sb.append(html);
					os.write(sb.toString().getBytes());
					os.flush();
				}
				
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

   main方法跑起来后, 浏览器输入 http://localhost:9999/,控制台显示:第二行开始打印的就是http请求内容



 浏览器接到响应显示:



 

猜你喜欢

转载自liuchang615270.iteye.com/blog/2392120