服务端返回响应 &任务分配给线程

java 复制代码
package TCP6;

// 完成TCP通信服务端  多发多收


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的对象 同时为服务端注册端口
     ServerSocket serverSocket = new ServerSocket(8888);

     // 创建线程池 负责处理通信管道的任务
    ThreadPoolExecutor pool= new ThreadPoolExecutor(4*2,4*2, 0, TimeUnit.SECONDS,
                new ArrayBlockingQueue<>(8), Executors.defaultThreadFactory());


        while (true) {
            //2:使用serverSocket 对象 调用accept 方法 等待客户端连接请求
            Socket socket= serverSocket.accept();


            // 3:把客户端对应的Socket 通信管道 交给独立的线程负责
          pool.execute(new ServerReaderRunnable(socket));




        }

    }

}
java 复制代码
package TCP6;

import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.Socket;
import java.util.Random;

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:red;font-size:120px;text-align:center'>你好你还好吗 6666</div> ");



            socket.close();
            ps.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }


}
相关推荐
金融小师妹5 小时前
基于NLP政策信号解析的联邦基金利率预测:美银动态调整12月降息概率至88%,2026年双降路径的强化学习模拟
大数据·人工智能·深度学习·1024程序员节
金融小师妹8 小时前
基于LSTM趋势预测的白银价格突破58美元阈值,年度累计涨幅超100%的强化学习驱动分析
大数据·人工智能·编辑器·1024程序员节
CoderYanger11 小时前
C.滑动窗口-越长越合法/求最短/最小——2904. 最短且字典序最小的美丽子字符串
java·开发语言·数据结构·算法·leetcode·1024程序员节
CoderYanger11 小时前
A.每日一题——2141.同时运行N台电脑的最长时间
java·算法·leetcode·职场和发展·1024程序员节
科普瑞传感仪器12 小时前
从“盲操作”到“智能感知”:六维力传感器解决装配卡死的创新方案
人工智能·科技·物联网·机器人·无人机·1024程序员节
开开心心就好14 小时前
图片批量压缩工具:支持有损无损两种模式
java·游戏·pdf·excel·散列表·启发式算法·1024程序员节
CoderYanger14 小时前
A.每日一题——3512. 使数组和能被 K 整除的最少操作次数
java·数据结构·算法·leetcode·职场和发展·1024程序员节
CoderYanger1 天前
递归、搜索与回溯-记忆化搜索:38.最长递增子序列
java·算法·leetcode·1024程序员节
CoderYanger1 天前
C.滑动窗口-越短越合法/求最长/最大——2958. 最多 K 个重复元素的最长子数组
java·数据结构·算法·leetcode·哈希算法·1024程序员节
CoderYanger2 天前
A.每日一题——2435. 矩阵中和能被 K 整除的路径
开发语言·线性代数·算法·leetcode·矩阵·深度优先·1024程序员节