zoukankan      html  css  js  c++  java
  • 代码实现一个简单的webserver服务器

    直接代码:

    package cn.tedu.core;
    
    import java.io.IOException;
    import java.io.OutputStream;
    import java.io.PrintStream;
    import java.io.PrintWriter;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    /**ZHEzhe这个类用来读取服务端的程序
     * 1.生命ServerSocket对象
     * 2.在构造函数中完成ServerSocket对象的初始化
     * 3.提供start方法,接收客户端的请求并相应
     * 4.提供main方法,启动服务器
     * */
    public class WebServer {
        //声明serversocket对象,,他是站在服务端的
        private ServerSocket serverSocket;
        //在构造方法中完成初始化
        public  WebServer() {
            try {
                serverSocket = new ServerSocket(8080);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        //tigongstartfangfa
        public void start(){
            try {
                while (true){
                    //持续接收客户端请求
                    Socket socket = serverSocket.accept();
    
                    //向浏览器返回
                    /*组织的数据格式不符合http协议
                    OutputStream outputStream = socket.getOutputStream();
                    outputStream.write("hello".getBytes());
                    outputStream.flush();*/
    
                    //改造输出格式
                    /*PrintWriter 输出字符
                    * PrintStream 输出除了字符还可以图片啥的*/
                    PrintStream ps = new PrintStream(socket.getOutputStream());
                    //拼接状态行
                    ps.println("HTTP/1.1 200 OK");
                    //响应头,相应内容:网页类型
                    ps.println("Context-Type:text/html");
                    //相应内容的长度
                    String data = "hello server~";
                    ps.println("Content-Length:"+data.length());
    
                    //空白行
                    ps.println();
    
                    //拼接相应实体内容
                    ps.write(data.getBytes());
                    ps.flush();
                    socket.close();
    
                }
    
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
    
        //提供main方法启动
        public static void main(String[] args) {
            WebServer webServer = new WebServer();
            //接收请求并相应
            webServer.start();
        }
    
    }
  • 相关阅读:
    bstToDoublyList
    Springboot系列1_什么是Springboot
    servlet总结
    JavaFx开发桌面软件
    在Emacs中使用plantuml画UML图
    IIS7.0上传文件限制的解决方法
    开源免费的天气预报接口API以及全国所有地区代码(国家气象局提供)
    如何得到天气情况?在那个接口获取?
    Windows Update 时出现8024402C的错误
    OC中copy的使用
  • 原文地址:https://www.cnblogs.com/gxlaqj/p/11352914.html
Copyright © 2011-2022 走看看