java服务端 客户端(非阻塞 多线程)
发布时间:2020-12-15 00:12:29 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 public class MultithreadJIoSocketTest { @Test public void testMultithreadJIoSocket() throws Exception { ServerSocket serverSocket = new Serv
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 public class MultithreadJIoSocketTest { @Test public void testMultithreadJIoSocket() throws Exception { ServerSocket serverSocket = new ServerSocket (10002); Thread thread = new Thread (new Accptor (serverSocket) ); thread.start(); Scanner scanner = new Scanner (System.in); scanner.next(); } public class Accptor implements Runnable { private ServerSocket serverSocket; public Accptor (ServerSocket serverSocket) { this.serverSocket = serverSocket; } public void run() { while (true) { Socket socket = null; try { socket = serverSocket.accept(); if (socket != null) { System.out.println ("收到了socket:" + socket.getRemoteSocketAddress().toString() ); Thread thread = new Thread (new Processor (socket) ); thread.start(); } } catch (IOException e) { e.printStackTrace(); } } } } public class Processor implements Runnable { private Socket socket; public Processor (Socket socket) { this.socket = socket; } @Override public void run() { try { BufferedReader in = new BufferedReader (new InputStreamReader (socket.getInputStream() ) ); String readLine; while (true) { readLine = in.readLine(); System.out.println ("收到消息" + readLine); if ("end".equals (readLine) ) { break; } //客户端断开连接 socket.sendUrgentData (0xFF); Thread.sleep (5000); } } catch (InterruptedException e) { e.printStackTrace(); } catch (SocketException se) { System.out.println ("客户端断开连接"); } catch (IOException e) { e.printStackTrace(); } finally { try { socket.close(); } catch (IOException e) { e.printStackTrace(); } } } } } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |