//服务端
package com.mlt.d10_socket6.d9_socket5; import java.net.ServerSocket; import java.net.Socket; import java.util.concurrent.*; public class ServerDemo01 { private static ExecutorService pool= new ThreadPoolExecutor(3,5,6, TimeUnit.SECONDS, new ArrayBlockingQueue<>(2), Executors.defaultThreadFactory(),new ThreadPoolExecutor.AbortPolicy()); public static void main(String[] args) throws Exception { try { System.out.println("=====服务端======"); //1.注册端口 ServerSocket serverSocket = new ServerSocket(8888); while (true) { //2.调用acceapt方法,等待接收客户端的Socket连接请求,建立连接 Socket socket = serverSocket.accept(); //存入 pool.execute(new ServerReadeRunnable(socket)); } } catch ( Exception e) { e.printStackTrace(); } } }
//实现任务
package com.mlt.d10_socket6.d9_socket5; import java.io.*; import java.net.Socket; import java.util.Scanner; public class ServerReadeRunnable implements Runnable{ private Socket socket; Scanner sc = new Scanner(System.in); public ServerReadeRunnable(Socket socket){ this.socket=socket; } @Override public void run() { try { //3.从socket的通信管道得到字节输入流 InputStream is = new FileInputStream("D:\\daima\\javaSEtall\\d\\net-app\\src\\-3bec7f4d3dbd4bda.jpg"); OutputStream os = new FileOutputStream("D:\\d.jpg"); byte[] buffer = new byte[1024]; int len; while ((len= is.read(buffer))!=-1){ System.out.println( new String(buffer,0,len)); os.write(buffer); } PrintStream ps = new PrintStream(socket.getOutputStream()); ps.println("HTTP/1.1 200 OK"); ps.println("Content-Type:text/html;charset=UTF-8"); ps.println(); ps.println("<span style='color:red;font-size:100px'>王陶鲁你真帅</span>"); ps.println("<br />"); ps.println("<h1>帅哥调查表</h1>"); ps.println("姓名:<input type='text' />"); ps.println("<br />"); ps.println("颜值:<input type='text' />"); ps.println("<br />"); ps.println("电话号:<input type='text' />"); ps.println("<br />"); ps.println("妹妹追求数:<input type='text' />"); ps.println("<br />"); ps.println("<button>提交</button>"); ps.println("<button>取消</button>"); ps.close(); } catch (Exception e) { System.out.println(socket.getRemoteSocketAddress()+"下线了!!!"); } } }