1.Socket和ServerSocket
服务端
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; public class Server { public static void main(String[] args) throws IOException{ // 创建ServerSocket实例,绑定9000端口 ServerSocket serverSocket = new ServerSocket(9000); // 调用accept,等待客户端连接 Socket socket = serverSocket.accept(); // 获取客户端输入流 InputStream is = socket.getInputStream(); // 使用InputStreamReader装饰输入流 InputStreamReader isr = new InputStreamReader(is); // 使用BufferedReader读取 BufferedReader br = new BufferedReader(isr); String content = ""; while ((content = br.readLine()) != null) { System.out.println(content); } // 手动关闭资源 serverSocket.close(); is.close(); isr.close(); br.close(); } }
客户端
import java.io.IOException; import java.io.OutputStream; import java.net.Socket; public class Client { public static void main(String[] args) throws IOException{ String host = "localhost"; int port = 9000; // 连接指定host和port的服务端 Socket socket = new Socket(host, port); // 获取客户端输出流 OutputStream outputStream = socket.getOutputStream(); // 编写输出内容,转成字节数组 outputStream.write("hello world \n 大家好".getBytes()); // 刷新并强制写出所有缓存的输出字节 outputStream.flush(); // 手动关闭资源 socket.close(); outputStream.close(); } }