手写简单tomcat服务器

付威     2019-07-07   1424   4min  

使用socket通信原理实现简单的http协议,代码很简单(动态类访问和NIO晚点实现,有点懒。。):

  ServerSocket serverSocket;

    public Tomcat(int port) {
        try {
            serverSocket = new ServerSocket(port);
            System.out.println("服务端启动成功,端口是:" + port);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void start() {
        while (true) {
            try {
                Socket accept = serverSocket.accept();
                InputStream inputStream = accept.getInputStream();
                byte[] buff = new byte[1024];
                int len = inputStream.read(buff);
                if (len > 0) {
                    String msg = new String(buff, 0, len);
                    System.out.println("接收到数据:" + msg);
                }
                OutputStream outputStream = accept.getOutputStream();
                StringBuilder resp = new StringBuilder();
                resp.append("HTTP/1.1\n");
                resp.append("Content-type:text/html\n\n");
                resp.append("<h1>Hello Tomcat!</h1>");
                byte[] bytes = resp.toString().getBytes();
                outputStream.write(bytes);
                outputStream.flush();
                outputStream.close();
            } catch (Exception ex) {

            }
        }
    }

    public static void main(String[] args) {
        Tomcat tomcat = new Tomcat(8080);
        tomcat.start();
    }

启动后访问:http://localhost:8080/, 返回结果如下:

手写简单tomcat服务器

(本文完)

作者:付威

博客地址:http://blog.laofu.online

如果觉得对您有帮助,可以下方的RSS订阅,谢谢合作

如有任何知识产权、版权问题或理论错误,还请指正。

本文是付威的网络博客原创,自由转载-非商用-非衍生-保持署名,请遵循:创意共享3.0许可证

交流请加群113249828: 点击加群   或发我邮件 laofu_online@163.com

付威

获得最新的博主文章,请关注上方公众号