java用main方法通过socket 接收实现http

运行main方法后,可以接收http 请求, 适合简单的服务器测试

 

代码如下:

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

public class Demo02 {
    public static void main(String[] args) throws IOException {
        final ServerSocket serverSocket = new ServerSocket(8887);
        System.out.println("server start on 8887 ...");

        while (true) {
            Socket acceptSocket = serverSocket.accept();

            // 接收内容
            BufferedReader reader = new BufferedReader(new InputStreamReader(acceptSocket.getInputStream()));
            String line = reader.readLine();
            System.out.println("accept : " +line);

            // 返回内容
            printStream(acceptSocket, "<h1>Hello World</h1>");
            // 关闭流
            reader.close();
            acceptSocket.close();
        }
    }

    private static void printStream(Socket acceptSocket, String test) throws IOException {
        PrintStream printWriter = new PrintStream(acceptSocket.getOutputStream());
        printWriter.println("HTTP/1.0 200 OK");
        printWriter.println("Content-Type:text/html;charset=UTF-8");
        printWriter.println();
        printWriter.println(test);
        printWriter.close();
    }
}

 

编译后得到  Demo02.class, 放置到有java 环境的服务器, 执行

java Demo02

即可访问该服务器的8887 端口。

 

如果想在后台运行,则执行:

nohup java Demo02 &

 关闭:

ps -ef |grep Demo02
# 拿到pid 后kill 掉即可
kill -9  xxxx

 

posted @ 2023-06-24 14:20  得好好活  阅读(117)  评论(0编辑  收藏  举报