美文网首页
Java入门--socket创建BSServer

Java入门--socket创建BSServer

作者: 王二麻子88 | 来源:发表于2020-12-02 23:37 被阅读0次

    Java入门--Socket创建BSServe

    首先在项目的根路径下, 创建一个 demo.html (内容随便写写)

    在Java主程序中

    package io.github.wangermaizi.day10;
    
    import java.io.*;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    // BS-TCP
    public class BSServe {
        public static void main(String[] args) throws IOException {
            ServerSocket serverSocket = new ServerSocket(8848);
            Socket socketClient = serverSocket.accept();
            InputStream ips = socketClient.getInputStream();
            /*
            // 能读取关于本次请求的一些浏览器信息
            int len = 0;
            byte[] bytes = new byte[1024];
            while ((len = ips.read(bytes)) != -1) {
                System.out.println(new String(bytes, 0, len));
            }
            */
    
            // GET /day06/index.html
            // 根据上述页面需要给浏览器相应内容
    
            // 把 ips 网络字节流对象, 转为字符缓冲流
            BufferedReader br = new BufferedReader(new InputStreamReader(ips));
    
            // 通过缓冲流读取第一行
            String line = br.readLine();
            // 把读取信息进行切割, 只要中间的部分
            String[] arr = line.split(" ");
            // 把前面的 /去掉就是 html位于项目的路径
            String htmlPath = arr[1].substring(1);
            // 根据路径读取本地文件
            FileInputStream fis = new FileInputStream(htmlPath);
    
            // 写入浏览器 HTTP的相应头, 固定写法
            OutputStream ops = socketClient.getOutputStream();
            ops.write("HTTP/1.1 200 OK\r\n".getBytes());
            ops.write("Content-Type:text/html\r\n".getBytes());
            // 必须加入空行否则文件不解析
            ops.write("\r\n".getBytes());
    
            // 通过 socket写入流, 响应出去 (文件资源的回写)
            int len = 0;
            byte[] bytes = new byte[1024];
            while ((len = fis.read(bytes)) != -1) {
                ops.write(bytes, 0, len);
            }
    
            socketClient.shutdownInput();
            fis.close();
            ops.close();
            socketClient.close();
            serverSocket.close();
    
        }
    }
    
    

    相关文章

      网友评论

          本文标题:Java入门--socket创建BSServer

          本文链接:https://www.haomeiwen.com/subject/onepwktx.html