java socket 通訊socketServer 服務端多執行緒
執行緒程式碼
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;
public class ServerThread extends Thread{
// 和本執行緒相關的socket
Socket socket = null;
public ServerThread(Socket socket) {
this.socket = socket;
}
// 執行緒執行的操作,響應客服端請求
public void run() {
InputStream is = null;
InputStreamReader isr = null;
BufferedReader br = null;
OutputStream os = null;
PrintWriter pw = null;
try {
// 3.獲取輸入流,並讀取客服端資訊
is = socket.getInputStream();//位元組輸入流
isr = new InputStreamReader(is);//將位元組流轉換為字元流
br = new BufferedReader(isr);//為輸入流新增緩衝
String info = null;
String infoResult = "";
String sendString="";
while ((info=br.readLine())!=null) {//迴圈讀取客服端的資訊
infoResult = infoResult+info;
}
socket.shutdownInput();//關閉輸入流
//=====================================================
System.out.println(" In:"+infoResult);
// 4.響應客服端 即給客服端傳送資訊
os = socket.getOutputStream();//位元組輸出流
pw = new PrintWriter(os);//將輸出流包裝為列印流
//sendString = Integer.toString(BiaoQian);
pw.write(sendString);// 寫入客戶端的資訊+只能是純數字字串
System.out.println("Out:"+sendString);
pw.flush();//呼叫flush()方法將緩衝輸出
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
// 5.關閉資源
if (pw!=null) {pw.close();}
if (os!=null) {os.close();}
if (br!=null) {br.close();}
if (isr!=null) {isr.close();}
if (is!=null) {is.close(); }
if (socket!=null) {socket.close();}
} catch (Exception e2) {
// TODO: handle exception
}
}
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/818/viewspace-2807786/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java多執行緒技術:實現多使用者服務端Socket通訊Java執行緒服務端
- JAVA - 基於Socket的多執行緒通訊Java執行緒
- Java多執行緒-執行緒通訊Java執行緒
- Java多執行緒學習——執行緒通訊Java執行緒
- socket實現服務端多執行緒,客戶端重複輸入服務端執行緒客戶端
- java多執行緒5:執行緒間的通訊Java執行緒
- java多執行緒間的通訊Java執行緒
- Java多執行緒學習(3)執行緒同步與執行緒通訊Java執行緒
- java多執行緒實現TCP網路Socket程式設計(C/S通訊)Java執行緒TCP程式設計
- Java執行緒通訊Java執行緒
- C/S(socket、執行緒 實現多個客戶端、伺服器端簡易通訊)執行緒客戶端伺服器
- Socket最簡單的客戶端與服務端通訊-Java客戶端服務端Java
- Swift多執行緒:使用Thread進行多執行緒間通訊,協調子執行緒任務Swift執行緒thread
- 【Java】【多執行緒】兩個執行緒間的通訊、wait、notify、notifyAllJava執行緒AI
- Java之執行緒通訊Java執行緒
- 多執行緒之間通訊及執行緒池執行緒
- Java多執行緒中的wait/notify通訊模式Java執行緒AI模式
- Android小知識-Java多執行緒相關(執行緒間通訊)上篇AndroidJava執行緒
- java多執行緒:執行緒間通訊——生產者消費者模型Java執行緒模型
- Java 多執行緒學習(執行緒通訊——消費者和生產者)Java執行緒
- Java多執行緒學習(五)執行緒間通訊知識點補充Java執行緒
- 多執行緒之間的通訊執行緒
- Java多執行緒事務管理Java執行緒
- Java中命名執行器服務執行緒和執行緒池Java執行緒
- 【Linux網路程式設計-5】多執行緒服務端Linux程式設計執行緒服務端
- Java多執行緒—執行緒同步(單訊號量互斥)Java執行緒
- 多執行緒Demo學習(執行緒的同步,簡單的執行緒通訊)執行緒
- Java多執行緒-執行緒中止Java執行緒
- 說說Java執行緒間通訊Java執行緒
- 【Java多執行緒】輕鬆搞定Java多執行緒(二)Java執行緒
- Java多執行緒消費訊息Java執行緒
- 使用多執行緒提高rest服務效能執行緒REST
- java——多執行緒Java執行緒
- java多執行緒Java執行緒
- Java - 多執行緒Java執行緒
- java 多執行緒Java執行緒
- Java多執行緒之執行緒中止Java執行緒
- Java多執行緒-執行緒狀態Java執行緒