BIO实现简单通信
程序员文章站
2022-07-12 16:41:01
...
client端
server端:
handler:
package com.huayang.Bio; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; public class BioClient { public static void main(String[] args) { BufferedReader in = null; PrintWriter out = null; Socket socket = null; try { socket = new Socket("127.0.0.1", 10001); in = new BufferedReader(new InputStreamReader(socket.getInputStream())); String s = null; out = new PrintWriter(socket.getOutputStream(), true); out.println("query time order"); s = in.readLine(); System.out.println("接收到服务端消息:" + s); } catch (IOException e) { e.printStackTrace(); } finally { if (in != null) { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } if (out != null) { out.close(); } if (socket != null) { try { socket.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
server端:
package com.huayang.Bio; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class BioServer { public static void main(String[] args) { ServerSocket serverSocket = null; try { serverSocket = new ServerSocket(10001); System.out.println("the time server is start in port : 10001"); Socket socket = null; while (true) { socket = serverSocket.accept(); new Thread(new ServerHandler(socket)).start(); } } catch (IOException e) { e.printStackTrace(); } finally { if (null != serverSocket) { try { serverSocket.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
handler:
package com.huayang.Bio; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import java.util.Date; public class ServerHandler implements Runnable { private Socket socket; public ServerHandler(Socket socket) { this.socket = socket; } @Override public void run() { BufferedReader bufferedReader = null; PrintWriter out = null; try { while (true) { bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream())); out = new PrintWriter(socket.getOutputStream(), true); String currentTime = ""; String body = null; body = bufferedReader.readLine(); if (body == null) break; currentTime = "query time order".equalsIgnoreCase(body) ? new Date(System.currentTimeMillis()).toString() : "bad order"; System.out.println("服务端接收到 query time order 命令 " + currentTime); out.println(currentTime); } } catch (IOException e) { e.printStackTrace(); } finally { if (bufferedReader != null) { try { bufferedReader.close(); } catch (IOException e) { e.printStackTrace(); } } if (out != null) { out.close(); } if (this.socket != null) { try { this.socket.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
上一篇: dubbo的运用以及应用demo
下一篇: 大数据入门基础之linux