00:02
Server socket channel,前面呢,我们把s key相关的API说了一下,下面呢,我们说一下server socket channel和socket channel的相关API。首先我们看一下。Server呢,就跟我们前面画的图对应的,它是什么意思呢?在服务器端监听新的客户端S连接,这句话在我们代码里面从哪里体现呢?大家看到是不是在这里体现的?同学,你看这里有个Y循,这里面有个Y循环对不对,一旦我发现,一旦我发现有一个is,呃,Acceptable的时候呢,我在这里面就可以进行一个。啊,监听就是你等待新的客户端来连接。等待新的空难链接,那么同学同学们在前面我已经讲过了,本身这个方法呢,它会阻塞,但是因为你在调这个方法的时候,其实已经判断有人来连接了,所以说这个方法会很快得到执行,对吧,是这样子的。
01:02
OK,接着往下看,呃,Open。Band band这个方法呢,就是设置服务器端的端口号在哪里体现出来的,在这。是不是在这里有个band,这里我创建了一个in net socket address放送我们的端口。下一个。Configgu blocking设置阻塞会或者是非阻塞模式,取值false表示采用非阻塞。我们在通常的情况下呢,用n nio边轴都需要把它设成一个force。Except接受一个连接。返回代表这个连接的通道对应对对象,也就是刚才我们所说的这个方法,Except。他其实返回的就是一个socket channel。这个呢,有点类似于我们Java。IO里面的socket。继续往下看。Register不说了吧,这个register是注册一个选择器,并设置我关心的事件。
02:04
这是server socket channel,那么这个server soet channel呢?大家一定要知道它的,它跟这个soet的关系哈,其实他们都会有共同的分类,是哪一个呢?我们来看一下。这简单看一下它的基础关系。同学们可以看到,Server烧枪呢,它其实是继承了abstract sector sector。China,然后呢,实现了。Network China,而我们的so呢,也是一样的,大家看一下,因为所以说这两个呢,其实他们有很多方法,其实都是类似的,我们来看一下是不是这样子的往下走。就它我们也来看同学们比较一下。我们socket China呢,它也继承了obstract setable channel,同时呢,他也去实现了light,但是大家有没有发现它实现的接口更多。
03:05
它实现什么接口了,大家有没有发现,是不是有一个我们前面讲的scatter。Bad channel,就是说它可以实现这一个叫做什么呢?分散还有一个聚集的这么一个,呃,功能,也就是说从这里可以看出来,So呢,它更重要的功能是对数据的读写。而server so呢,它更多的是代表你有一个连接来了过后,我给你生成一个soer就完事了,说他们的分工是不一样的,好,这点大家一定要清晰,接着往下看。呃,往下看啊,往下看我们的socket turner socket turner呢,它主要是做网络IO通道负责,具体负责读写操作。NIO把缓冲区的数据写入到通道,或者把通道里的数据。读到缓冲区里面。
04:00
重要的方法有哪些呢?Open不说了。还有一个configu blocking也是主色非主设置主摄或非主摄的一个模式。Connect connect呢是代表连接服务器,大家还记不记得这个connect在客户端这里体现出来的。是不是这里面我们有一个看方法。连接服务器。下面有一个finish connect,就是如果上面这个方法失败呢?接下来就要通过该方法完成连接操作,就是如果这个失败了,我还用一个finish connect来完成连接。write和read不说了,Right是不是往通道里面写数据在哪里用到这个方法了?是不是在这儿用到的。这个时候就是把buffer里面数据,把我们buffer里面数据写入到这个通道。同样呢,你有写就有读,读是哪一个呢?读是read的方法。这个RAID方法呢,是我们在服务器那边用了一下,对不对,当然如果说服务器那边有数据返回来呢,你你要从通道里面读数据,那你客户端也要用RAID方法。
05:08
还有一个register一样的,因为对于China来说,它总是要被注册到一个S上面去,所以他有register方法。Close,关闭通道。就这么几个方法啊,同学们知知道一下,那从这边我们一定要分析分析出来他们的分工是不一样的,Server呢,它主要用用来监听新的客户,客户端连接,然后呢,我给你产生一个socket channel,而so China呢,主要是用作负责具体的读写操作两个呃,China他们的。他们的功能和他们的职责是不一样的,好,同学们,那关于这两个channel,重要的channel呢,我们就聊到这里。
我来说两句