網絡程式設計的基本模型是Client/Server模型,也就是兩個程序之間進行互相通信,其中服務端提供位置資訊(綁定的IP位址和監聽端口),用戶端通過連接配接操作向服務端監聽的位址發起連接配接請求,通過三次握手建立連接配接,如果連接配接建立成功,雙方就可以通過網絡套接字(Socket)進行通信。
在基于傳統同步阻塞模型開發中,ServerSocket負責綁定IP位址,啟動監聽端口;Socket負責發起連接配接操作。連接配接成功之後,雙方通過輸入和輸出流進行同步阻塞式通信。
采用BIO通信模型的服務端,通常由一個獨立的Acceptor線程負責監聽用戶端的連接配接,它接收到用戶端連接配接請求之後為每個用戶端建立一個新的線程進行鍊路處理,處理完成之後,通過輸出流傳回應答給用戶端,線程銷毀。這就是典型的一請求一應答通信模型。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcugzMxcTZ3ImZzETZmBDZ4YjYwE2MiFDN2MWOhVjY1EjYfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
服務端
The time server is start in port : 8080 //阻塞等待客戶的連接配接
The time server receive order : QUERY TIME ORDER //runable線程處理請求
用戶端
Send order 2 server succeed. //連接配接後給服務端發資料
Now is : Mon Dec 12 13:17:12 CST 2016 //接受服務端響應的資料