httpserver.java

来自「自己用JAVA SE写的一个模仿web应用」· Java 代码 · 共 77 行

JAVA
77
字号
package com.liaobin;

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

public class HttpServer {
	private static final int PORT = 8888;

	/**
	 * 服务器启动
	 */
	public void start() {
		ServerSocket ss = null;
		

		try {
			ss = new ServerSocket(PORT);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			Log4j.error(e.toString());
			e.printStackTrace();
		}

		while (true) {
			try {
				Socket socket = ss.accept();
				Log4j.info("a client is connectted,the client's ip address and port number is:"+socket.getInetAddress()+socket.getPort());
				
				testConnection(socket);
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	public void testConnection(Socket socket) {

		try {
			InputStream ips = socket.getInputStream();
			byte[] buffer = new byte[1024];
			ips.read(buffer);
			String str = new String(buffer);
			System.out.println(str);

			OutputStream ops = socket.getOutputStream();

			String outstr = "<html><head><title>this is a test for demo container</title></head><body><br><hr><p>您好客户端用户,您的地址是:</p><hr><p>"
					+ socket.getInetAddress().toString() + "</p></body></html>";
			ops.write(outstr.getBytes());
			ops.flush();
			disconect(ips, ops, socket);

		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	public void disconect(InputStream ips, OutputStream ops, Socket socket) {
		try {
			ips.close();
			ops.close();
			socket.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?