在(一)中實現了單執行緒的客戶、服務端的連線和資料傳送接收
應用多執行緒來實現伺服器和多客戶端之間的通訊
基本步驟
伺服器端建立serversocket,迴圈呼叫accept()等待客戶端連線
客戶端建立乙個socket並請求和伺服器端連線
伺服器端接收客戶端請求,建立socket與該客戶建立專線連線
建立連線的兩個socket在乙個單獨的執行緒上對話
伺服器端繼續等待新的連線
**實現:
/*
* 基於tcp協議的socket通訊,實現使用者登入
* 伺服器端
*/public class serverdemo
} catch (ioexception e)
}}
多執行緒**:
/*
* 伺服器執行緒處理類
*/public class serverthreaddemo extends thread
//執行緒執行的操作,響應客戶端的請求
public void run()
socket.shutdowninput(); //關閉輸入流
//獲取輸出流,響應客戶端的請求
os =socket.getoutputstream();
pw = new printwriter(os); //包裝為列印流
pw.write("歡迎您!");
pw.flush();
} catch (ioexception e) finally
if(os!=null)
if(br!=null)
if(isr!=null)
if(is!=null)
if(socket!=null)
} catch (ioexception e)
} }}
客戶端**:
/*
* 客戶端
*/public class clientdemo
//4.關閉資源
br.close();
isr.close();
is.close();
pw.close();
os.close();
socket.close();
} catch (unknownhostexception e) catch (ioexception e)
}}
多執行緒伺服器
posix執行緒庫 a 與執行緒有關的函式都構成了乙個完整的系列,絕大多數函式的名字都是以 pthread 打頭的。b 要使用這些庫函式,要引入標頭檔案。c 鏈結這些執行緒庫函式時要使用編譯命令的 lpthread 選項。int pthread create pthread t thread,con...
多執行緒時間伺服器
include stdafx.h include include include include include define port 8080 int x 1 void error char str dword winapi new client proc lpvoid lpparam prin...
多執行緒服務程式程式設計心得
後台伺服器程式一般都要求很高的穩定性和健壯性,編寫高質量的伺服器程式需要注意如下幾個方面 1 對於後台的多個並行工作執行緒最好不要用另乙個執行緒來統一管理。大多數人認為專門用乙個排程執行緒來排程各執行緒是乙個比較好的方案。但是在實際應用中這種方法並不一定好,因為如果你的任務處理特別頻繁而且需要將各執...