?? singleclient.java
字號:
import java.io.*;
import java.net.*;
/**類SingleClient是單客戶機制的客戶端程序*/
public class SingleClient{
public static void main(String args[]){
/**由于Socket的生成和關閉都有可能產生錯誤,因此需要進行例外處理*/
try{
/**生成一個Socket對象socketObj,連接到本地機器上的4700端口*/
Socket socketObj=new Socket("127.0.0.1",4700);
/*生成InputStreamReader類對象streamObj1,將客戶端的鍵盤輸入System.in作為參數構造該對象*/
InputStreamReader streamObj1 = new InputStreamReader(System.in);
/*使用上面InputStreamReader類的對象streamObj1生成BufferedReader類對象buffObj1*/
BufferedReader buffObj1 = new BufferedReader(streamObj1);
/*通過socket對象的getOutputStream()方法獲得的OutputStream對象,并用它創建PrintWriter類的對象*/
PrintWriter outObj = new PrintWriter(socketObj.getOutputStream());
/*根據socket獲得的輸入流創建BufferedReader類對象,使得讀取數據的效率提高*/
BufferedReader buffObj2 = new BufferedReader(
new InputStreamReader(socketObj.getInputStream()));
/*聲明字符串變量readStr,用于存放客戶端輸入的一行字符串*/
String readStr;
/*將客戶端輸入的一行字符串放入字符串變量readStr中*/
readStr = buffObj1.readLine();
/*while循環控制客戶端通話的結束,當客戶端輸入的字符串為“end”時結束*/
while(!readStr.equals("end"))
{
/*在服務器端將客戶端輸入的字符串輸出*/
outObj.println(readStr);
/*在服務器端強制輸出客戶端的輸入字符串*/
outObj.flush();
/*在客戶端輸出自己輸入的字符串*/
System.out.println("Client:"+readStr);
/*在客戶端輸出服務器端輸入的字符串*/
System.out.println("Server:"+buffObj2.readLine());
/*讀取客戶端輸入的字符串,放入字符串變量readStr中*/
readStr = buffObj1.readLine();
}
/*關閉socket的輸出流*/
outObj.close();
/*關閉socket的輸入流*/
buffObj2.close();
/*關閉socket*/
socketObj.close();
}catch(Exception e){
System.out.println("錯誤:"+e);
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -