資源簡介
實用線程+循環完成了客戶端與服務端的簡單通信(服務端為本機),服務器端可以向客戶端發送消息,客戶端也可以向服務器端發送消息。你一句我一句實現對話,通過檢測內容是否為OVER結束對話。

代碼片段和文件信息
package?com.NullChenHui;
import?java.io.BufferedReader;
import?java.io.IOException;
import?java.io.InputStream;
import?java.io.InputStreamReader;
import?java.io.OutputStream;
import?java.io.PrintWriter;
import?java.net.Socket;
import?java.net.UnknownHostException;
import?java.util.Scanner;
public?class?ClientThread?extends?Thread?{
private?String?IP;
private?int?port;
private?boolean?OVER_FLAG?=?false;
public?ClientThread(String?IP?int?port)?{
this.IP?=?IP;
this.port?=?port;
}
@Override
public?void?run()?{
//?TODO?Auto-generated?method?stub
OutputStream?os?=null;
PrintWriter?pw?=?null;
try?{
//1.建立客戶端Socket??并指定發送服務器端的地址(IP?+?port?)
//2.獲取輸出流
?
while(!OVER_FLAG)?{
?Socket?socket?=?new?Socket(IPport);
?os?=?socket.getOutputStream();
?pw?=?new?PrintWriter(os);
//3.發送數據
System.out.print(“客戶端:“);
????Scanner?scanner?=?new?Scanner(System.in);
????String?data1?=?scanner.nextLine();
?
pw.write(data1);
pw.flush();
//4.關閉資源
socket.shutdownOutput();
//接受來自服務器的反饋
InputStream?is?=?socket.getInputStream();??
InputStreamReader??isr?=?new?InputStreamReader(is);??//字節流包裝為字符流
BufferedReader?bf?=?new?BufferedReader(isr);???//添加進緩存
//4.從緩存中讀取數據
String?info?=?null;
while((info=bf.readLine())?!=?null)?{
System.out.println(“服務器說:“+info);
if(“OVER“.equals(info))?{
???????? OVER_FLAG?=?true;
???????? break;
????????}
}
??
/***
?*?如果獲取的內容是空的?說明服務器端還沒有發送數據
?*/
//?5?關閉資源
os.close();
pw.close();
is.close();
bf.close();
// socket.shutdownInput();
}
System.out.println(“對話結束“);
}?catch?(UnknownHostException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}?catch?(IOException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????301??2018-03-17?09:00??com.NullChenHui\.classpath
?????文件????????391??2018-03-17?09:00??com.NullChenHui\.project
?????文件????????598??2018-03-17?09:00??com.NullChenHui\.settings\org.eclipse.jdt.core.prefs
?????文件???????2483??2018-03-17?12:38??com.NullChenHui\bin\com\NullChenHui\ClientThread.class
?????文件????????767??2018-03-17?12:08??com.NullChenHui\bin\com\NullChenHui\MyClientSocket.class
?????文件????????732??2018-03-17?12:08??com.NullChenHui\bin\com\NullChenHui\MyServerSocket.class
?????文件???????2463??2018-03-17?12:33??com.NullChenHui\bin\com\NullChenHui\ServerThread.class
?????文件???????2017??2018-03-17?12:38??com.NullChenHui\src\com\NullChenHui\ClientThread.java
?????文件????????233??2018-03-17?12:08??com.NullChenHui\src\com\NullChenHui\MyClientSocket.java
?????文件????????327??2018-03-17?12:08??com.NullChenHui\src\com\NullChenHui\MyServerSocket.java
?????文件???????1992??2018-03-17?12:33??com.NullChenHui\src\com\NullChenHui\ServerThread.java
?????目錄??????????0??2018-03-17?11:47??com.NullChenHui\bin\com\NullChenHui
?????目錄??????????0??2018-03-17?10:50??com.NullChenHui\src\com\NullChenHui
?????目錄??????????0??2018-03-17?09:00??com.NullChenHui\bin\com
?????目錄??????????0??2018-03-17?09:00??com.NullChenHui\src\com
?????目錄??????????0??2018-03-17?09:00??com.NullChenHui\.settings
?????目錄??????????0??2018-03-17?09:00??com.NullChenHui\bin
?????目錄??????????0??2018-03-17?09:00??com.NullChenHui\src
?????目錄??????????0??2018-03-17?09:00??com.NullChenHui
-----------?---------??----------?-----??----
????????????????12304????????????????????19
- 上一篇:數據庫
- 下一篇:使用 Java 實現的壓縮/解壓 ZIP 文件的工具類
評論
共有 條評論