00:00
各位同学大家好,欢迎继续收看上硅谷Java n IO课程,咱们继续来看这个select选择器。刚才呢,给各位介绍了莱特的基本使用,咱们演示里边的各个方法的操作,那下面呢,我们通过一段代码让各位再进一步感受一下select的使用,那下面我们来写一下这个代码。然后这个代码怎么做呢?咱现在分成两部分,一部分是客户端代码,一部分是服务端代码,通过客户端进行发送,然后服务端完成里面这个过程,那下面呢,我们就写两段代码给各位来写一下这个实现。首先我先写一下这个客户端的这个代码。在里边这个位置,我来创建一个方法,咱们做一个实验。这个方法我们写一个单元测试的太次的,然后给方法起个名字,我们写一下。
01:05
Public这个方法,比如叫这个client,咱们把方法做个创建。创建之后,在这个代码中就完成客户端的部分,那这部分怎么做呢?我把里面的代码的过程给各位先写出来,然后咱们通过过程把代码我们进一步实现一下,那我在里边写一下啊,首先我们操作中第一部分大家可以想一下咱需要先干什么。因为这是客户端代码,所以首先第一部分咱是不是先获取到我们那个通道,并且绑定你那个主机,包括你的端口号,所以这就是他的第一部分获取咱们的通道,然后在里边我们要绑定咱们的主机和它的端口号,这是里边的第一部。然后这个做完之后,咱的第二部分怎么做呢?就是切换一下,让他到我们那个叫非阻塞的这个模式,这是里边的第二步,然后这个做完之后咱的第三步,那我就可以创建这么一个buffer。
02:12
把buffer做创建,然后buffer创建之后呢,下面咱们来向buffer中写入数据,为了一会儿进行传递做准备,写一下第四步就是咱们写入这个。八份里边这个数据为咱们后面就是传这个过程做准备,这是里边的第四步,然后这个做完之后,咱那第五步干什么,是不是又可以切换一下它的模式,就是做一个模式的这么一个切换,也就是调里面那个不这个方法做一个切换,然后切换之后咱最后一步就是写入通道,然后并且做这个清空或者关闭的这个过程。然后写一下啊里边的第六步,那咱就是写入这个通道。
03:01
然后最后一步我们就做这个清空,并且做一个关闭的这个过程。所以这是关于我们在客户端代码中要完成一个基本过程。给各位把过程写了一遍,那下面呢,我们就根据过程把这个代码我们来快速做实现,这里边我们来写一下啊,首先第一步我们获取通道,那通道我就用这个socket。China。然后起个名字就叫socket,等于咱们里边这个socket China。点上一个open方法。然后在open方法中呢,咱可以绑定它的主机,包括顿号,那我们直接上一个对象,在里边写上我们的主机,咱们就是127.0.0.1,然后这个端口号,比如我写一个这个,咱就来个8080,所以这样的话,咱们现在把第一步完成了。
04:01
里边有异常,咱给它直接throw出去,所以这是第一步。获取通道,绑定主机和端口号,这个完成完成之后第二部分咱们把这个通道切换成一种非阻塞模式,那我们来做切换。咱们用这个socket。里边这个方法,然后加上一个false,这样的话就完成这个非阻塞模式的这么一个计划。这个完成之后,下面咱的第三步,那我们就创建一个八块,我们写一个BA8块。这里边我就叫这个bit buffer。等于那咱就用这个BA far法里面这个方法,这个loate,比如咱们创建一个buffer,咱就来一个1024,这是咱的第三步操作,咱完成了,完成之后呢,下面呢,咱要向八份装生给他写入我们一些数据啊,那这里边往里边咱放一些数据。
05:04
这里我写一下,我们用这个put方法往里边放下它的数据。然后这个数据呢,我就把当前的时间咱给他直接传进去啊,那我就直接上这么一个。被套。然后呢,给它变成这么一个。字符串,再给它变成一个字节的这么一个数组,现在向八个中写入我们的内容,就是我们的当前时间,为了一会儿我们做传递做准备,然后这个做完之后,下面咱切换一下那个读写模式,用BA8块里边那个福利一个方法做模式切换,切换之后下一步操作咱们就是把这个内容写入到咱的通道里面去,那我用这个soet channel点上一个方法加上的buffer,所以现在这个前六步就完成了,然后最后一步咱把这buffer做一个给它清空,或者说关闭一下,所以现在大家注意啊,我通过里边这个七步操作,咱们就完成了客户端代码,一会儿咱们客户端进行这么一个发送,然后服务端能接收到,完成里面这个相关的过程。
06:21
所以这是我们完成的客户端代码的编写。
我来说两句