简单BioDemo示例(socket通信)
程序员文章站
2022-03-06 19:41:28
...
思路:服务端接到请求,分发给多线程任务,返回时间给客户端
Bioserver服务端
import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class BioServer { /** * 端口号 */ private static final int PORT = 8080; public static void main(String[] args) throws IOException { ServerSocket server = null; try { server = new ServerSocket(PORT); System.out.println("the time server is start in port : " + PORT); Socket socket = null; while (true){ socket = server.accept(); new Thread(new TimeServerHandler(socket)).start(); } }catch (Exception e){ e.printStackTrace(); }finally { if(server!=null){ System.out.println("the time server close"); server.close(); } } } }
多线程时间任务
import java.io.*; import java.net.Socket; import java.util.Date; public class TimeServerHandler implements Runnable { private Socket socket; public TimeServerHandler(Socket socket){ this.socket = socket; } @Override public void run() { BufferedReader in = null; PrintWriter out = null; try { in = new BufferedReader(new InputStreamReader(this.socket.getInputStream())) ; out = new PrintWriter(this.socket.getOutputStream(), true); String body = null; while ((body = in.readLine())!=null && body.length()!=0){ System.out.println("the time server receive msg :" + body); out.println(new Date().toString()); } }catch (Exception e){ e.printStackTrace(); }finally { if(in!=null){ try { in.close(); }catch (Exception e){ e.printStackTrace(); } } if(out!=null){ try { out.close(); }catch (Exception e){ e.printStackTrace(); } } if(this.socket != null){ try{ this.socket.close(); }catch (Exception e){ e.printStackTrace(); } } } } }
BioCenlit客户端
import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; public class BioClient { private static final int PORT = 8080; private static final String HOST = "127.0.0.1"; public static void main(String[] args){ Socket socket = null; BufferedReader in = null; PrintWriter out = null; try { socket = new Socket(HOST, PORT); in = new BufferedReader(new InputStreamReader(socket.getInputStream())); out = new PrintWriter(socket.getOutputStream(), true); out.println("I am Client"); String resp = in.readLine(); System.out.println("当前服务器时间是:"+resp); }catch (Exception e){ e.printStackTrace(); }finally { if(in != null){ try { in.close(); }catch (Exception e){ e.printStackTrace(); } } if(out != null){ try { out.close(); }catch (Exception e){ e.printStackTrace(); } } if (socket != null) { try { socket.close(); } catch (Exception e) { e.printStackTrace(); } } } } }
上一篇: 高性能跨平台网络通信框架 HP-Socket v5.4.4
下一篇: 内容营销给企业带来的三个益处