socket编程Demo
2018-04-06 00:00
148 查看
摘要: 温故知新 socket demo
客户端代码:
服务端代码:
服务端处理逻辑:
先启动服务端, 再启动 客户端,非常简单的demo已经有点忘了 先记一下
根据这个demo我们知道一个socket建立大致需要这四个步骤:
1 服务器监听
2 客户端请求
3 服务端确认
4客户端确认
PS:耻于表达,羞于表达,用编程麻痹自己 ,反正也没有人看。
客户端代码:
package com.company.bio; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; public class Client { final static String ADDRESS = "127.0.0.1"; final static int PORT = 8765; public static void main(String[] args) { Socket socket = null; BufferedReader in = null; PrintWriter out = null; try { socket = new Socket(ADDRESS, PORT); //阅读接收的数据 in = new BufferedReader(new InputStreamReader(socket.getInputStream())); out = new PrintWriter(socket.getOutputStream(), true); //向服务器端发送数据 out.println("这是客户端给服务端的数据"); String response = in.readLine(); System.out.println("Client: " + response); } catch (Exception e) { e.printStackTrace(); } finally { if (in != null) { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } if (out != null) { try { out.close(); } catch (Exception e) { e.printStackTrace(); } } if (socket != null) { try { socket.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
服务端代码:
package com.company.bio; import com.company.bio.ServerHandler; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class Server { final static int PROT = 8765; public static void main(String[] args) { ServerSocket server = null; try { server = new ServerSocket(PROT); System.out.println(" server start .. "); //进行阻塞 Socket socket = server.accept(); //新建一个线程执行客户端的任务 new Thread(new ServerHandler(socket)).start(); } catch (Exception e) { e.printStackTrace(); } finally { if (server != null) { try { server.close(); } catch (IOException e) { e.printStackTrace(); } } server = null; } } }
服务端处理逻辑:
package com.company.bio; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; public class ServerHandler implements Runnable { private Socket socket; public ServerHandler(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 (true) { body = in.readLine(); if (body == null) break; System.out.println("Server :" + body); out.println("这是服务端给客户端的数据"); } } catch (Exception e) { e.printStackTrace(); } finally { if (in != null) { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } if (out != null) { try { out.close(); } catch (Exception e) { e.printStackTrace(); } } if (socket != null) { try { socket.close(); } catch (IOException e) { e.printStackTrace(); } } socket = null; } } }
先启动服务端, 再启动 客户端,非常简单的demo已经有点忘了 先记一下
根据这个demo我们知道一个socket建立大致需要这四个步骤:
1 服务器监听
2 客户端请求
3 服务端确认
4客户端确认
PS:耻于表达,羞于表达,用编程麻痹自己 ,反正也没有人看。