Download Network_programming_project/Case_module/src/Case_package6/Server.java from zxy0307/Java: direct link, hf CLI and curl.
- Browser
- Download file 1.4 kB
-
https://huggingface.co/zxy0307/Java/resolve/main/Network_programming_project/Case_module/src/Case_package6/Server.java
- Command line
-
hf download hf://zxy0307/Java/Network_programming_project/Case_module/src/Case_package6/Server.java
-
curl -L -o Server.java https://huggingface.co/zxy0307/Java/resolve/main/Network_programming_project/Case_module/src/Case_package6/Server.java
1.4 kB
| package Case_package6; | |
| import java.io.IOException; | |
| import java.net.ServerSocket; | |
| import java.net.Socket; | |
| 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 IOException { | |
| //客户端:将本地文件上传到服务器,接收服务器的反馈 | |
| //服务器:接收客户端上传的文件,上传完毕之后给出反馈 | |
| //创建线程池对象 | |
| ThreadPoolExecutor pool = new ThreadPoolExecutor( | |
| 3,//核心线程数量 | |
| 16,//线程池总大小 | |
| 60,//空闲时间 | |
| TimeUnit.SECONDS,//空闲时间(单位) | |
| new ArrayBlockingQueue<>(2),//队列 | |
| Executors.defaultThreadFactory(),//线程工厂,让线程池如何创建线程对象 | |
| new ThreadPoolExecutor.AbortPolicy()//阻塞队列 | |
| ); | |
| //1、创建对象并绑定端口 | |
| ServerSocket ss = new ServerSocket(10000); | |
| while (true) { | |
| //2、等待客户端来连接 | |
| Socket socket = ss.accept(); | |
| //开启一条线程 | |
| //一个用户就对应服务端的一条线程 | |
| pool.submit(new MyRunnable(socket)); | |
| } | |
| } | |
| } | |