package NIO;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class MultiThreadEchoServer {private static ExecutorService tp = Executors.newCachedThreadPool();public static void main(String[] args) {ServerSocket echoServer = null;Socket clientSocket = null;try {echoServer = new ServerSocket(8000);} catch (IOException e) {System.out.println(e);}while (true) {try {clientSocket = echoServer.accept();System.out.println(clientSocket.getRemoteSocketAddress() + "connect");tp.execute(new HandleMsg(clientSocket));} catch (IOException e) {System.out.println(e);}}}/*** 读取客户端socket的内容分并返回*/static class HandleMsg implements Runnable {Socket clientSocket;public HandleMsg(Socket clientSocket) {this.clientSocket = clientSocket;}@Overridepublic void run() {BufferedReader is = null;PrintWriter os = null;try {is = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));os = new PrintWriter(clientSocket.getOutputStream(), true);// 从inputStream当中读取客户端所发的数据String inputLine = null;long b = System.currentTimeMillis();while ((inputLine = is.readLine()) != null) {os.println(inputLine);}long e = System.currentTimeMillis();System.out.println("spend:" + (e - b) + "ms");} catch (IOException e) {e.printStackTrace();} finally {try {if (os != null) {os.close();os = null;}// TODOif (is != null) {is.close();is = null;}clientSocket.close();} catch (IOException e) {e.printStackTrace();}}}}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。