Server
package com.witwicky.socket.basicsocket; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; public class Server { public static void main(String[] args) { int port = 43523; ServerSocket serverSocket = null; try { System.out.println("=== start recive message......"); serverSocket = new ServerSocket(port); Socket socket = serverSocket.accept(); InputStream inputStream = socket.getInputStream(); StringBuffer sb = new StringBuffer(); byte[] bytes = new byte[1024]; int len; while ((len = inputStream.read(bytes)) != -1) { System.out.println("length: " + len); sb.append(new String(bytes, 0, len, "UTF-8")); } System.out.println(sb.toString()); System.out.println("end recive message...... ==="); String returnContent = "recive over."; OutputStream outputStream = socket.getOutputStream(); outputStream.write(returnContent.getBytes("UTF-8")); outputStream.close(); inputStream.close(); socket.close(); serverSocket.close(); } catch (IOException e) { e.printStackTrace(); } } }
Connected to the target VM, address: '127.0.0.1:61818', transport: 'socket' === start recive message...... length: 180 因为《The C Programme Language》中使用它做为第一个演示程序,非常著名,所以后来的程序员在学习编程或进行设备调试时延续了这一习惯。 end recive message...... === Disconnected from the target VM, address: '127.0.0.1:61818', transport: 'socket' Process finished with exit code 0
Client
package com.witwicky.socket.basicsocket; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; public class Client { public static void main(String[] args) { String host = "127.0.0.1"; int port = 43523; try { System.out.println("==="); Socket socket = new Socket(host, port); OutputStream outputStream = socket.getOutputStream(); String content = "因为《The C Programme Language》中使用它做为第一个演示程序,非常著名,所以后来的程序员在学习编程或进行设备调试时延续了这一习惯。"; outputStream.write(content.getBytes()); socket.shutdownOutput(); int len; byte[] bytes = new byte[1024]; InputStream inputStream = socket.getInputStream(); StringBuffer sb = new StringBuffer(); while ((len = inputStream.read(bytes)) != -1) { sb.append(new String(bytes, 0, len, "UTF-8")); } System.out.println("service return content: " + sb.toString()); System.out.println("==="); inputStream.close(); outputStream.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } }
Connected to the target VM, address: '127.0.0.1:61828', transport: 'socket' === service return content: recive over. === Disconnected from the target VM, address: '127.0.0.1:61828', transport: 'socket' Process finished with exit code 0