java模拟WEB服务器向客户端发送对应的图片

代码示例:

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

public class Demo {
    public static void main(String[] args) throws IOException {
        //创建serversocket对象
        ServerSocket server = new ServerSocket(28888);
            //死循环多线程运行,等待客户端接入
        while (true) {
            Socket socket = server.accept();
            new Thread(){
                public void run() {
                    try {//创建输入流,读取客户端发来的请求消息
                        BufferedReader netIn = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                        //只读取第一行内容
                        String str = netIn.readLine();//GET //img//mn4.jpg HTTP/1.1
                        //解析读取的内容
                        String[] strArr = str.split(" ");//以空格分割字符串
                        String s = strArr[1];//     //img//mn4.jpg
                        if (!s.startsWith("//img")) {//访问的内容不存在
                            socket.close();
                            return;
                        }
                        String fileName = s.substring(s.lastIndexOf("/") + 1);//  mn4.jpg
                        //创建输入流,从文件读取客户端需要的数据
                        InputStream in = new FileInputStream("img\\" + fileName);
                        byte[] bytes = new byte[1024 * 14];
                        int len = 0;
                        //创建网络输出流给客户端发送数据
                        OutputStream netOut = socket.getOutputStream();
                        //产生响应头
                        netOut.write("HTTP/1.1 200 OK\r\n".getBytes());
                        netOut.write("content-type:image/jpeg\r\n".getBytes());//告诉浏览器,我这边返回的是一个图片
                        netOut.write("\r\n".getBytes());
                        //以上三行,固定写法,给浏览器看的
                        while ((len = in.read(bytes)) != -1) {
                            netOut.write(bytes,0,len);
                        }
                        //关闭资源
                        netOut.close();
                        in.close();
                        netIn.close();
                        socket.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }.start();
        }

    }
}

操作步骤:

1,需要项目根目录下有一个名字为img的文件夹

2,文件夹中保存有mn4.jpg的图片文件

3,运行代码后在浏览器地址栏输入: 本机的IP地址    :    端口号   //img//mn4.jpg

4,按下回车,就会在浏览器出现相应的画面

浏览器效果图:

猜你喜欢

转载自blog.csdn.net/xilin6664/article/details/89159172