服务器代码

    public static void main(String[] args) {
        // 创建ServerSocket对象,开启8088端口监听发送过来的请求
        // IP是电脑在网络上的唯一标识,端口号是程序在电脑中的唯一标识
        InputStream is = null;
        OutputStream os = null;
        FileInputStream fis = null;
        try {
            ServerSocket ss = new ServerSocket(8888);
            System.out.println("服务器启动");
            // 让服务器循环监听请求(服务器不能停止运行)
            while (true) {
                // 接收请求过来的数据
                Socket s = ss.accept();
                System.out.println("收到请求");
                // 获取输入流
                is = s.getInputStream();
                // 构建一个byte数组,用来装取输入流里面读取出来的数据
                byte[] data = new byte[1024];
                // 从输入流里面读取数据放入data数组里面
                is.read(data);
                // 把byte【】数组中的二进制数据转化成String
                String httpInfo = new String(data);
                System.out.println(httpInfo);

                // 获取输出流(响应)
                os = s.getOutputStream();
//            //响应普通文本
//            os.write("<h1>请求处理完毕,响应数据给浏览器</h1>".getBytes());
//            os.flush();
                // 响应二进制数据——图片、视频、音频
//            File img=new File("img/1.jpg");
//            FileInputStream ins=new FileInputStream(img);
                fis = new FileInputStream("img/1.jpg");
                byte[] imgStr = new byte[1024];
                int len = 0;
                while ((len = fis.read(imgStr)) != -1) {
                    os.write(imgStr, 0, len);
                    os.flush();// 手工刷新
                }
                if (fis != null) {
                    fis.close();
                }
                if (is != null) {
                    is.close();
                }
                if (os != null) {
                    os.close();
                }
                System.out.println("完成响应");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

猜你喜欢

转载自www.cnblogs.com/java-programmer-XNKJDX15/p/12007096.html