B/S架构

java 复制代码
package com.zz.tcp.BC;

import com.zz.tcp.case1.ServerReaderThread;

import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

public class Server {
    public static void main(String args[]) throws Exception{
        System.out.println("========服务端启动========");
        //1.创建ServerSocket的对象,调用一个accept方法,等待客户端的连接请求
        ServerSocket serverSocket = new ServerSocket(8888);

        //创建出一个线程池,负责处理线程融信管道的任务
        ThreadPoolExecutor pool = new ThreadPoolExecutor(8 * 2, 8 * 2, 0,
                TimeUnit.DAYS, new ArrayBlockingQueue <>(8), Executors.defaultThreadFactory(),
                new ThreadPoolExecutor.AbortPolicy());

        while (true){
            //2.使用ServerSocket对象,调用一个accept方法,等待客户端的连接请求
            Socket socket = serverSocket.accept();
            System.out.println("有人上线了" + socket.getRemoteSocketAddress());
            //3.把这个客户端对应的socket通信管道,交给一个独立的线程复制处理
            pool.execute(new ServerReaderRunnable(socket));
        }

    }
}
java 复制代码
package com.zz.tcp.BC;

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

public class ServerReaderRunnable implements Runnable{
    private Socket socket;
    public ServerReaderRunnable(Socket socket) {
        this.socket = socket;
    }

    @Override
    public void run() {
        //立即响应一个网页内容"你好,中国"给浏览器展示
        try {
            OutputStream os = socket.getOutputStream();
            PrintStream ps = new PrintStream(os);
            ps.println("HTTP/1.1 200 OK");
            ps.println("Content-Type:text/html;charset=UTF-8");
            ps.println();//必须换行
            ps.println("<div style='color:blue;font-size:120px;text-align:center'>你好,世界!</div>");
            ps.close();
            socket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}
相关推荐
luj_17683 小时前
残熵算法实时化三大瓶颈突破
c语言·开发语言·网络·经验分享·算法
吴懿不在3 小时前
某次热身赛re方向wp WORDS 51,500 READ 172 MIN base64,
网络
充钱大佬3 小时前
Python测试基础教程
python·log4j·apache
mCell3 小时前
你以为短链接只是 Hash + 301/302?
后端·算法·架构
记忆停留w4 小时前
从单体到微服务:Redis 协同 MySQL、Milvus、MinIO 搭建企业级RAG/AI Agent脚手架架构
大数据·人工智能·redis·微服务·ai·架构·milvus
财财源源5 小时前
.NET 程序保护实战系列01-流水线架构与保护引擎总览
架构·.net
KaMeidebaby5 小时前
卡梅德生物技术快报|抗体亲和力成熟工业化调控新机制:差异性浆细胞增殖工艺优化思路
java·开发语言·人工智能·算法·机器学习·架构·spark
初心丨哈士奇5 小时前
Python 四大基础容器|列表篇
python
深圳恒讯6 小时前
菲律宾云服务器与传统VPS的架构差异
运维·服务器·架构
小林ixn6 小时前
从“玩具工具”到“跨语言利器”:MCP 协议实战解析
运维·服务器·网络