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();
}
}
