server
package com.as; import java.io.IOException; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; public class ServerDemo { //服務器 public static void testServer(){ //創建一個服務器 System.out.println("等待客戶端連接。。。"); PrintWriter pwtoclien = null; Scanner keybordscanner = null; Scanner inScanner = null; ServerSocket ss = null; try { ss = new ServerSocket(6666); //創建一個接收連接客戶端的對象 Socket socket = ss.accept(); System.out.println(socket.getInetAddress()+"已成功連接到此台服務器上。"); //字符輸出流 pwtoclien = new PrintWriter(socket.getOutputStream()); pwtoclien.println("已成功連接到遠程服務器!"+"\t"+"請您先發言。"); pwtoclien.flush(); keybordscanner = new Scanner(System.in); inScanner = new Scanner(socket.getInputStream()); //阻塞等待客戶端發送消息過來 while(inScanner.hasNextLine()){ String indata = inScanner.nextLine(); System.out.println("客戶端:"+indata); System.out.print("我(服務端):"); String keyborddata = keybordscanner.nextLine(); System.out.println("我(服務端):"+keyborddata); pwtoclien.println(keyborddata); pwtoclien.flush(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { pwtoclien.close(); keybordscanner.close(); inScanner.close(); try { ss.close(); } catch (IOException e) { e.printStackTrace(); } } } public static void main(String[] args) { testServer(); } }
client
package com.as; import java.io.IOException; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; import java.util.Scanner; public class ClientDemo { public static void testClient(){ System.out.println("正在向服務器請求連接。。。"); Socket socket = null; Scanner keybordscanner = null; Scanner inScanner = null; PrintWriter pwtoserver = null; try { socket = new Socket("192.168.10.40", 6666); inScanner = new Scanner(socket.getInputStream()); System.out.println(inScanner.nextLine()); pwtoserver = new PrintWriter(socket.getOutputStream()); System.out.print("我(客戶端):"); //先讀取鍵盤錄入方可向服務端發送消息 keybordscanner = new Scanner(System.in); while(keybordscanner.hasNextLine()){ String keyborddata = keybordscanner.nextLine(); //展示到己方的控制台 System.out.println("我(客戶端):"+keyborddata); //寫到服務端的的控制台 pwtoserver.println(keyborddata); pwtoserver.flush(); //阻塞等待接收服務端的消息 String indata = inScanner.nextLine(); System.out.println("服務端:"+indata); System.out.print("我(客戶端):"); } } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { keybordscanner.close(); pwtoserver.close(); inScanner.close(); try { socket.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public static void main(String[] args) { testClient(); } }