H2數據庫研究-TCP服務器(四)

  又要好幾天沒有寫博客了,做一件事情最難的就是堅持,很多開源的項目都是因爲各種原因而中止的,但是我閱讀開源代碼絕不能半途而費,一定要堅持一下。

  今天又看了一點,使用H2的tcp方式連接數據庫,終於調試了一下H2的tcp服務器接收客戶端的發送的連接請求的代碼,大致過程是這樣的:

  1.客戶端通過JDBC驅動程序發送一個請求,H2的TcpServer接收到客戶端的請求後,獲取socket對象中的輸入和輸出流,讀取輸入流中的數據,解析出url,用戶名和密碼等等信息。

  2.通過數據庫引擎創建一個Session,再進一步覈對客戶端請求的用戶名,密碼等信息,若不正確則拋出異常,並且將異常信息通過Socket的輸出流發送給客戶端,客戶端則會在調用getConnection的時候拋出異常。

  3.若用戶名密碼等信息正確,則會通過Socket的輸出流發送給客戶端STATUS_OK的消息給客戶端,並且創建一個Connection對象,成功創建Connection。

  4.服務器繼續等待客戶端發送調用SQL語句的數據。

  5.客戶端發送SQL語句請求。

  6.服務器端接收數據,解析數據,檢查SQL語句語法是否正確,若不正確則返回錯誤信息,發送給客戶端,若語法正確則執行SQL語句中相應的操作,返回執行之後的結果。

  客戶端和TCP服務器之間的交互過程就是這樣的,還需要進一步瞭解具體的細節,以便自己能夠了解客戶端和服務器端之間交互的細節。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章