//服务器编程 public class Server { public static void main(String[] args) { Scanner sc = new Scanner(System.in); try { ServerSocket ss = new ServerSocket(10000); System.out.println("服务器启动"); while (true) { Socket server = ss.accept(); System.out.println("连接客户端"); new Thread(new Server_sendMessage(server)).start(); new Thread(new Server_recieveMessage(server)).start(); } } catch (IOException e) { e.printStackTrace(); } } } class Server_sendMessage implements Runnable{ private Socket socket; public Server_sendMessage() { } public Server_sendMessage(Socket socket) { this.socket = socket; } @Override public void run() { Scanner sc = new Scanner(System.in); OutputStream os = null; try { os = socket.getOutputStream(); String line = null; while ((line = sc.nextLine()) != null && !"".equals(line)) { if ("quit".equals(line)) { System.out.println("服务器正在断开连接...."); break; } else { line="服务器>"+line; os.write(line.getBytes()); } } } catch (IOException e) { e.printStackTrace(); } } } class Server_recieveMessage implements Runnable{ private Socket socket; public Server_recieveMessage() { } public Server_recieveMessage(Socket socket) { this.socket = socket; } @Override public void run() { InputStream is = null; try { is = socket.getInputStream(); byte[] buffer=new byte[1024]; int len=0; while ((len = is.read(buffer)) != -1) { System.out.println(new String(buffer,0,len)); } } catch (IOException e) { e.printStackTrace(); } } }
//客户端编程
public class Client { public static void main(String[] args) { try { Socket client = new Socket(InetAddress.getLocalHost(),10000); System.out.println("连接服务器成功"); new Thread(new Client_sendMessage(client)).start(); new Thread(new Server_recieveMessage(client)).start(); } catch (IOException e) { e.printStackTrace(); } } } class Client_sendMessage implements Runnable{ private Socket socket; public Client_sendMessage() { } public Client_sendMessage(Socket socket) { this.socket = socket; } @Override public void run() { Scanner sc = new Scanner(System.in); OutputStream os = null; try { os = socket.getOutputStream(); String line = null; while ((line = sc.nextLine()) != null && !"".equals(line)) { if ("quit".equals(line)) { System.out.println("客户端正在断开连接...."); break; } else { line="客户端>"+line; os.write(line.getBytes()); } } } catch (IOException e) { e.printStackTrace(); } } } class Client_recieveMessage implements Runnable{ private Socket socket; public Client_recieveMessage() { } public Client_recieveMessage(Socket socket) { this.socket = socket; } @Override public void run() { InputStream is = null; try { is = socket.getInputStream(); byte[] buffer=new byte[1024]; int len=0; while ((len = is.read(buffer)) != -1) { System.out.println(new String(buffer,0,len)); } } catch (IOException e) { e.printStackTrace(); } } }