package com.yarin.android.Examples_08_05; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Client2 { private static final int PORT = 54321; private static ExecutorService exec = Executors.newCachedThreadPool(); public static void main(String[] args) throws Exception { new Client2(); } public Client2() { try { Socket socket = new Socket("192.168.1.110", PORT); exec.execute(new Sender(socket)); BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream())); String msg; while ((msg = br.readLine()) != null) { System.out.println(msg); } } catch (Exception e) { } } //�ͻ����̻߳�ȡ����̨������Ϣ static class Sender implements Runnable { private Socket socket; public Sender(Socket socket) { this.socket = socket; } public void run() { try { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); PrintWriter pw = new PrintWriter(socket.getOutputStream(), true); String msg; while (true) { msg = br.readLine(); pw.println(msg); if (msg.trim().equals("exit")) { pw.close(); br.close(); exec.shutdownNow(); break; } } } catch (Exception e) { e.printStackTrace(); } } } }