?? clientdemo.java
字號:
import java.io.*;
import java.net.*;
public class ClientDemo {
public static void main(String[] args) throws IOException {
Socket kkSocket = null; //創(chuàng)建Socket類
PrintWriter out = null; //創(chuàng)建文件寫出器
BufferedReader in = null; //創(chuàng)建文件讀入器,主要應用該類的readLine()方法
boolean runable = true; //與服務器通話的狀態(tài)
String toServer; //寫到服務端的信息
try {
//通過1111Port使客戶端接口與服務器接口聯(lián)系
kkSocket = new Socket("localhost", 8000);
//分別建立接口的讀入與寫出器
out = new PrintWriter(kkSocket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(kkSocket.
getInputStream()));
} catch (UnknownHostException e) {
System.err.println("找不到服務器");
System.exit(1);
} catch (IOException e) {
System.err.println("不能獲得Socket的讀入與寫出器");
System.exit(1);
}
//通過鍵盤輸入器建立另一個文件讀入器
BufferedReader stdIn = new BufferedReader(new InputStreamReader(
System.in));
//向服務器輸入信息
out.println("新的用戶登陸");
//建立顯示服務端信息的線程
ReadServerThread readServerThread = new ReadServerThread(in);
readServerThread.start(); //啟動線程
//進入與服務器對話的循環(huán)
while (runable) {
//向服務器輸入信息
toServer = stdIn.readLine();
out.println(toServer);
//當輸入的信息是"Bye."時,退出程序
if (toServer.equals("Bye.")) break;
runable = readServerThread.runable; //獲取線程的運行狀態(tài)
}
readServerThread.fromServer = "歡迎下次再來.";
readServerThread.runable = false;//關閉線程
out.close(); //關閉文件寫出器
in.close(); //關閉文件讀入器
stdIn.close(); //關閉文件讀入器
kkSocket.close(); //關閉Socket類
}
}
class ReadServerThread extends Thread {
BufferedReader in = null;
String fromServer = "";
boolean runable = true;
public ReadServerThread(BufferedReader in) {
this.in = in;
}
public void run() {
while(runable){
//顯示來自服務器的信息
try{fromServer = in.readLine();}catch(Exception e){runable = false;}
//當服務端輸入Bye.時,客戶端結(jié)束顯示服務端信息與向服務端寫入信息的兩個循環(huán)
if(fromServer.equals("Bye.")) {
System.out.print("服務器程序退出");
runable = false; //結(jié)束向服務端寫入信息循環(huán)
break; //結(jié)束顯示服務端信息循環(huán)
}
System.out.println("服務器: " + fromServer);
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -