一、Server端java
package com.hhdys.serviceimpl; import java.io.*; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; import java.util.List; import java.util.Scanner; import java.util.concurrent.TimeUnit; /** * Created by hhdys on 16/7/22. */ public class Server { private static List<Socket> clients = new ArrayList<Socket>(); public static void main(String[] args) { try { System.out.println("begin=================="); ServerSocket serverSocket = new ServerSocket(8088); while (true) { System.out.println("請輸入你要進行的操做!"); Scanner scanner = new Scanner(System.in); while (scanner.hasNextInt()) { int i = scanner.nextInt(); if (i == 1) { read(serverSocket); } else { write(); } } scanner.close(); } } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } System.out.println("end=============="); } private static void read(ServerSocket serverSocket) throws Exception { System.out.println("開始監聽===" + clients.size()); final Socket socket = serverSocket.accept(); clients.add(socket); new Thread(new Runnable() { public void run() { try { InputStream in = socket.getInputStream(); Scanner scanner = new Scanner(in); while (true) { while (scanner.hasNextLine()) { System.out.println(scanner.nextLine()); } TimeUnit.SECONDS.sleep(1); } } catch (IOException e) { e.printStackTrace(); }catch (Exception e){ e.printStackTrace(); } } }).start(); } public static void write() throws Exception { System.out.println("發送server消息===="); Socket socket = clients.get(0); OutputStream out = socket.getOutputStream(); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out)); writer.write("我是服務端哈哈哈哈!你好"); writer.newLine(); writer.flush(); // writer.close(); // out.close(); } }
二、Client端socket
package com.hhdys.serviceimpl; import java.io.*; import java.net.Socket; import java.util.Scanner; import java.util.concurrent.TimeUnit; /** * Created by hhdys on 16/7/22. */ public class Client { private static Socket socket=null; public static void main(String[] args){ System.out.println("begin=========="); try { socket=new Socket("127.0.0.1",8088); socket.setKeepAlive(true); System.out.println("client======"); OutputStream out = socket.getOutputStream(); InputStream in = socket.getInputStream(); final BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(out)); final Scanner scanner1 = new Scanner(in); Scanner scanner=new Scanner(System.in); while(true){ System.out.println("輸入你的操做!"); if(scanner.hasNextInt()){ int i=scanner.nextInt(); if(i==1){ new Thread(new Runnable() { public void run() { try { writer.write("我是客戶端哈哈哈哈!你好"); writer.newLine(); writer.flush(); } catch (IOException e) { e.printStackTrace(); } } }).start(); }else{ while (scanner1.hasNextLine()) { System.out.println(scanner1.nextLine()); } scanner1.close(); } } TimeUnit.SECONDS.sleep(1); } } catch (IOException e) { e.printStackTrace(); }catch (Exception e){ e.printStackTrace(); } System.out.println("end==========="); } }