Server :
package javaapplication2; import java.io.*; import java.net.ServerSocket; import java.net.Socket; public class MyServer { public static int onlineCount = 0; MyServer() { new Thread() { public void run() { while (true) { try { System.err.println("目前線上人數:" + onlineCount); Thread.sleep(1000); } catch (Exception e) { } } } }.start(); } public static void main(String[] args) throws Exception { new MyServer(); ServerSocket ss = new ServerSocket(80); System.out.println("伺服器已啟動..."); while (true) { Socket s = ss.accept(); Thread t = new Thread(new MyThread(s)); t.start(); } } } class MyThread extends Thread { Socket s; MyThread(Socket s) { this.s = s; } @Override public void run() { MyServer.onlineCount++; try { System.out.println(s.getRemoteSocketAddress() + " 已連線..."); BufferedReader r = new BufferedReader(new InputStreamReader(s.getInputStream())); PrintWriter w = new PrintWriter(new OutputStreamWriter(s.getOutputStream()), true); while (true) { w.println("你好...我是伺服器,這是伺服器的訊息"); System.out.println(s.getRemoteSocketAddress() + " 傳遞的訊息是:" + r.readLine()); } } catch (Exception e) { System.err.println(s.getRemoteSocketAddress() + " 已離線"); } MyServer.onlineCount--; } }
Client
package javaapplication2; import java.io.*; import java.net.InetAddress; import java.net.Socket; public class Client { public static void main(String[] args) { for (int i = 0; i < 10; i++) { new Thread() { public void run() { try { Socket s = new Socket(InetAddress.getByName("163.15.202.74"), 1024); BufferedReader r = new BufferedReader(new InputStreamReader(s.getInputStream())); PrintWriter w = new PrintWriter(new OutputStreamWriter(s.getOutputStream()), true); w.println("你好...我是客戶端"); System.out.println("從伺服器傳來的資料:" + r.readLine()); while (true) { } } catch (Exception e) { } } }.start(); } } }