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服务器之间的交互过程就是这样的,还需要进一步了解具体的细节,以便自己能够了解客户端和服务器端之间交互的细节。

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