基于Java圖書(shū)查詢(xún)系統的設計及實(shí)現
1 系統結構
系統采取B/S結構,利用服務(wù)器端和客戶(hù)端的Socket通信機制完成信息的傳遞,如圖1所示。數據庫用來(lái)統計圖書(shū)信息,主要涉及的是信息表格,選用Access實(shí)現。
2 Socket通信分析
2.1 Socket應用
網(wǎng)絡(luò )通過(guò)雙向通訊連接實(shí)現數據交換。Socket用來(lái)實(shí)現客戶(hù)端和服務(wù)端的連接,它是TCP/IP協(xié)議的編程界面,由一個(gè)IP地址和一個(gè)端口號惟一確定。在Java境下,Socket編程是基于TCP/IP協(xié)議的網(wǎng)絡(luò )編程。
2.2 Socket通信過(guò)程
服務(wù)器端Listen(監聽(tīng))某個(gè)端口是否有連接請求,客戶(hù)端向服務(wù)器端發(fā)出Connect(連接)請求,服務(wù)器端向客戶(hù)端發(fā)回Accept(接受)消息,一個(gè)連接就建立起來(lái)了。服務(wù)器端和客戶(hù)端都可以通過(guò)Send,Write等方法與對方通信。
采用Socket套接字把網(wǎng)絡(luò )連接作為一個(gè)流(Stream),通過(guò)流讀寫(xiě)字節。
2.3 網(wǎng)絡(luò )客戶(hù)和網(wǎng)絡(luò )服務(wù)器的設置
客戶(hù)端與服務(wù)器端使用約定一致的協(xié)議或標準來(lái)通信。由于在一個(gè)機器上同時(shí)運行了多個(gè)相同的或不同的網(wǎng)絡(luò )服務(wù)器,因此,端口號可作為約定的標準或協(xié)議的一部分,以便客戶(hù)機定位服務(wù)器。
網(wǎng)絡(luò )服務(wù)器綁定在某一端口上,監聽(tīng)新的連接。服務(wù)器允許客戶(hù)端建立一個(gè)相對持久的連接,在這個(gè)鏈接的生命周期中,客戶(hù)端不斷請求服務(wù)器的服務(wù),直到客戶(hù)端顯示斷開(kāi)這個(gè)連接。
3 查詢(xún)系統的設計方案
查詢(xún)系統分為服務(wù)器端和客戶(hù)機端兩部分。首先執行服務(wù)器端程序,然后監聽(tīng)本地IP地址上指定的端口,并發(fā)生阻塞,等待客戶(hù)端程序的連接請求;接著(zhù),客戶(hù)端程序啟動(dòng),向指定的服務(wù)器發(fā)送連接請求;當服務(wù)器端得到客戶(hù)端程序的連接請求后,與客戶(hù)端程序建立連接,并向客戶(hù)端程序返回其IP地址。
3.1 服務(wù)器端的設計步驟
(1)創(chuàng )建一個(gè)等待連接的ServerSocket對象。
(2)調用ServerSocket對象的accept()方法偵聽(tīng)接受客戶(hù)端的連接請求。當偵聽(tīng)到一個(gè)客戶(hù)的請求時(shí),連接成功,并返回一個(gè)Socket對象。
(3)創(chuàng )建與Socket對象綁定的輸入輸出流,并建立相應的數據輸入輸出流。
(4)通過(guò)數據輸入輸出流與客戶(hù)端進(jìn)行數據讀寫(xiě),完成雙向通信。
(5)當客戶(hù)端斷開(kāi)連接時(shí),關(guān)閉各個(gè)流對象,結束通信。
3.2 服務(wù)器端的設計步驟
(1)創(chuàng )建指定服務(wù)器上指定端口號的Socket對象。
(2)創(chuàng )建與Socket對象綁定的輸入輸出流,并建立相應的數據輸入輸出流。
(3)通過(guò)數據輸入輸出流與服務(wù)器端進(jìn)行數據讀寫(xiě),完成雙向通信。
(4)通過(guò)調用close()方法關(guān)閉與服務(wù)器端的連接,并關(guān)閉各個(gè)流對象,結束通信。
4 數據庫的驅動(dòng)和連接
采用jdbc-odbc橋實(shí)現庫的驅動(dòng)和連接,完成數據庫的連接并返回該連接。如圖2所示。
評論