一、Client(客户端代码)java
package cn.qi.Client; import java.io.*; import java.net.Socket; public class Client { Socket clientSocket; Client() {} public void write() throws IOException { // 创建链接到服务器端的socket clientSocket = new Socket("127.0.0.1",5000); // 客户端向服务器端发送消息,经过socket创建管道 OutputStream os = clientSocket.getOutputStream(); // 经过socket获取IO管道,纯IO操做 PrintWriter pw = new PrintWriter(os); pw.write("hello"); pw.flush(); // 流的关闭 pw.close(); // 关闭socket链接 clientSocket.close(); } public void read() throws IOException { // 创建链接到服务器端的socket clientSocket = new Socket("127.0.0.1",5000); // socket实现纯IO InputStream is = clientSocket.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); String st = br.readLine(); br.close(); System.out.println(st); // 关闭socket链接 clientSocket.close(); } public void writeAndRead() throws IOException { // 创建链接到服务器端的socket clientSocket = new Socket("127.0.0.1",5000); // 客户端向服务器端发送消息,经过socket创建管道 OutputStream os = clientSocket.getOutputStream(); // BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os)); // bw.write("hello"); // bw.write("\n"); // bw.flush(); PrintWriter pw = new PrintWriter(os); pw.write("hello"); // 当服务器端用readline读取消息时,客户端发送消息时要附带换行符,不然服务器端就没法结束读取 pw.write("\n"); pw.flush(); // 客户端与服务器端双向通讯时不能关闭IO流,不然默认认为想要关闭socket InputStream is = clientSocket.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); String st = br.readLine(); System.out.println(st); clientSocket.close(); } }
二、Server(服务器端代码)服务器
package cn.qi.Server; import java.io.*; import java.net.ServerSocket; import java.net.Socket; public class Server { ServerSocket serverSocket; Server() {} public void sent() throws IOException { // 创建severSocket,监听对应端口 serverSocket = new ServerSocket(5000); while(true) { // server监听端口,监听成功,生成socket Socket socket= serverSocket.accept(); // 服务器端向客户端发送消息,经过socket创建管道 OutputStream os = socket.getOutputStream(); // 经过socket获取IO管道,纯IO操做 PrintWriter pw = new PrintWriter(os); pw.write("hello"); pw.flush(); // 流的关闭 pw.close(); // 本次请求的socket的关闭 socket.close(); } } public void getInfo() throws IOException { // 创建severSocket,监听对应端口 serverSocket = new ServerSocket(5000); while(true) { // server监听端口,监听成功,生成socket Socket socket= serverSocket.accept(); // socket实现纯IO InputStream is = socket.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); String st = br.readLine(); br.close(); System.out.println(st); // 本次请求的socket的关闭 socket.close(); } } public void readAndWrite() throws IOException { // 创建severSocket,监听对应端口 serverSocket = new ServerSocket(5000); while(true) { // server监听端口,监听成功,生成socket Socket socket = serverSocket.accept(); // socket实现纯IO InputStream is = socket.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); String st = br.readLine(); System.out.println(st); // 服务器端向客户端发送消息,经过socket创建管道 OutputStream os = socket.getOutputStream(); PrintWriter pw = new PrintWriter(os); pw.write("yes hello"); pw.flush(); pw.close(); // 本次请求的socket的关闭 socket.close(); } } }