//服务端
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()+"下线了!!!");
}
}
}
多线程服务器端应用:处理并发连接与响应
1416

被折叠的 条评论
为什么被折叠?



