00:00
好,接下来呢,我们来看一下客户端启动之后,他又要做哪些事情,比如说服务端我们基本研究差不多了,那接下来我们看一下客户端。那客户端我们先看一下它大概走了哪些事儿哈,那首先呢,客户端启动是不是就是Z k.CH哎,客户端启动,那他在启动里面你会发现它有一个哎全类名是主keepper me。然后这里面调用到他的没方法对吧,哎,找到它程序的入口啊入口,然后他在这里面干了什么事情呢?哎,上来呢,他就要连接JK,其实就是连接的主K服务端。对吧,然后创建对象,创建对象之后,那这块呢,有一个初始化监听器。那这个监听器啊。它这里面是将这个传进来这个监听器,诶赋值为默认的监听器,你还记得我们在创建客户端对象的时候,始终是用了一个毛球吗。哎,那个包车呢,其实就是你传进来的那个参数。哎,那它是是不是作为默认的呀,你记得我们后面有一一传参数说错,那它走的是不是就是,哎,这里面它创建对象的时候那个毛车。
01:10
是这个含义哈,好,那再往下走,那下面呢,在这块呢,它就会解析对应的服务器地址,你说你要连接哪一个JK啊,对吧?哎,那这个服务器地址给解析出来。之后往下走,那下面呢,就要跟这个JK进行创建连接。或者发送对应的数据,那发送数据呢,就由这个send,比如说发送线程来进行执行来发送,那发送的话,那首先他要搞清楚说啊,那我发送的发给谁对不对,哎,还是这个start connect。那同时呢,它还会开启一个接收端。你想你发给别人之后,你是不是得立即?准备接收对方的应答呀,哎,发送和接收是成套出现的。那这块呢,就是具体的在底层往外发,那下面呢,这边呢,就是接收到对方啊的信息之后,我后续的一个处理操作。
02:04
啊,这是创建对象要做的一些初始化事情。那接下来,那下面呢,它就会调用他自己的这个run方法,哎,对象了之后,那我这里面开始真正的执行。那执行的时候怎么执行呢?它是在一个循环里面,一直接收对方给他的命令,比如说服务端给他发送什么相关命令,然后他会解析对应的命令,然后进行后续相关的一个操作。哎,这是客户端要做的一个大概流程,那好,那我们把这个过程啊先定出来。OK吧,那我们就一点点看啊。那首先我们来到这个JK啊,它是吧,找到它。找到源码的位置,源码是south啊这个位置,然后B目录下是不是他呀。打开之后你会发现它这个比这个服务端那个啊简单多了,直接直奔主题对吧,你看这里面Java-CP,然后对应的是它呀。
03:08
那这个就是它,它是程序的入口关闭掉。关闭掉。之后来到这,然后呢,CTRLN全局查找知道吧,哎,进来进来之后在这里面查找什么呢?Main方法。OK吧啊没方法进来之后就两个代码上来呢,就是创建一个主配面,然后呢,这个没方法进行执行,那是不是跟我们这里面这个图里描述的是一样的,上面呢是用了一个主me,然后这个呢,是对应的main方法进行执行,好吧,那好,那我们先进入到好进来。对吧,哎,进入到这里面,进入到这里面,我们要进行连接JK服务端,哎进行连接,那进行连接往下走呗,那这里面就有一个new,一个主keepper of me。打开之后在里面修,继续往里面点,然后this继续点。
04:02
继续点,点到这之后就来到了对应的这个主keepper。那主黑盘你首先应用眼帘的就是这个地方。哎,将传进来这个water,作为默认的这个water。哎,就是我刚才解释的,哎,你每拗一个对象的时候,其实他都会拗一,咱们会拗一个匿名的这个包词对吧?哎,然后后续呢,我再说,哎起步启动监听啊,这一个处它就会走这个总体这个。那当然你在这个不设置处的话,你也可以自己一个water对吧?哎,稍微回顾一下就知道了哈,那这那这块是啊water,那接下来这块呢,就是connect street啊,现在到了这块。哎,解析对应的服务器地址,就说你要连接JK当中,咱不有一个hi do102,然后2181,然后逗号啊1032181吗?我得解析我到底要连接哪台服务器啊。是这个意思哈,那好,那进来看一下。看一下之后,它会对这个字符串进行相关的一个啊替换啊截取是吧,哎,截取出相应的位置,那具体怎么截的我们就说了啊回来。
05:09
他得到对应的主机名称之后。回到这儿之后呢,下面的话,他就开始准备创建连接了,比如说要真正的去连接对应的主K班集群了啊,下面这块你看他创建完链接之后,下面就是启动啊。想看一下怎么连的。那这块呢,是连接继续往下走。对吧,然后this。啊往下走啊,这是这个客户端啊端那客户端。哎,是不是有一个new散的爱发送这个线程啊,对吧,客户端,而且刚才我们这个客户端的时候,是不是还调用了这个。创建完对象之后,是不是直接就调用的这个启动方法呀,对吧?哎,其实这里面就是这个啊,启动线成的对应的一个启动,那我们先来看一下这个三时代的里面干了什么事,对吧?进到这里面,进到这里面之后要查找谁呢?查找对应的方法。
06:04
哎,它启动之后的直行,那往下走啊,看一下我们现在相当于是走到了这个位置。对吧?来提供run,那么就要找对应的start connect和接收相关的代码。啊,那start,你看这块有一个while循环,说state is alive,只要这个状态一直活着,那我这块呢,就是开始启动连接,对吧,Start连。那这块呢,我就要连接对应的呃,服务器了。往下看。啊,往下看。啊,这块是不是连接啊,继续连接。哎,那这是抽象的,那抽象怎么办呢?CL out加B。我们是采用NIO的方式进行连接,那底层的话,这块就是resist and connect啊,这样这个服务端进行注册并连接,那其实走的就是对应的啊soet相关的一些通讯啊,先那这块完事之后呢,我们就退回来啊,相当于是现在已经建立好了连接来到这个位置啊,在哪呢?这个run方法。
07:03
哎,也说发送现成这个run方法这个位置啊,别晕。那刚才走的是这块,那接下来我们来看一下这块,好吧,来看这块。你这块呢,是这个,呃,启动连接往下看往下看。往下走。其实这块呢,就是收取在对方反馈回来的一些应答信息。那走呗,现在。进来之后你还是抽象的,那不行。怎么办呢?号的加B。哎,走的仍然是的no这种方式啊。那进来这边呢,就会处理相关消息啊,那用谁来处理呢?用这个do IO这个方法进行处理。那在杜IO里面,其实他做的事情就是对数据相关的一些应答呀,啊相关等等一些处理。行,那这里面我们啊什么response啊,对吧,我们就不做过多说明了,相当于代码呢,已经走到了这个位置。
08:01
好吧,那我们要这个创建对象走完了之后,下面是不是开始执行对应的方法呀。好,那得往回退了啊,这回退的比较多,往回走。再推再推啊。诶,到这儿,哎,回到这个位置,刚才走的是这个new keepper may,现在呢,是这个may方法的run方法啊。那看一下润方法里面干了什么事,那进来之后往下看看,这里有个循环。对吧,哎,一直要执行啊这一条代码,那这条代码干什么事呢。它这里面呢,是一直来解析对应的相关命令,比如说接收对方,比如说服务端给我相关的一些命令操作啊。那这里面有什么命令呢?看一下啊。进来之后,这里面有什么啊,Find查找。啊,进的这个不对啊,我们退出去啊,不是这个啊,是下面这个啊process啊是他。
09:01
那进来之后,那这里面呢,有对应的process JK处理相关的命令,那看他处理啥命令呢,你看。I执行的quit对吧?哎,退出相关命令啊,I do啊,然后历史查看命令啊,Print water,打印water,然后建立连接等相关操作,按那后续呢,就可以进行正常的一个工作啊,那这块呢,就是整个这个呃,客户端启动的流程啊,相关的一些代码啊。
我来说两句