00:01
各位同学大家好,下面呢,我们来学习另外一个so的通道,叫做so China。那so channel呢,同样我们先做一个基本介绍,然后咱们通过代码来演示一下里面过程,那我们来看一下啊,首先我这里写的so channel的是一个连接的TCP网络,套接字的一个通道也是它的。官网上这么一段描述,然后这个soet的China的,它主要用的是用来除以这个IO的通道,基于TCP的连接传输,它可以选择通道,可以支持这个多路复用的效果,多路复用咱后面会讲到什么特点,然后这个socket channel它里边啊,第一个可以调用里边的open方法创建这个channel这个对象。但是这个过程中并没有进行网络的连接,咱们需要使用可那个方法指定到你那个连接的地址中去。另外在这过程中,我们如果说未连接你这个so channel执行操作,它会抛出异常。
01:10
除此之外,So channel还支持阻塞以及非阻塞。另外它支持这个异步关闭,同时通过so channel能设置里边的机关参数,比如说保持这个连接就key,包括复用地址等等这个内容,所以这是关于so中一个基本特点啊,各位知道,重点就是啊,它是一个用于TCP的网络套接字的这么一个通道。那下面呢,咱就通过一些具体例子,把这个给各位来演示一下,我们来看一下里边这个。那下面给各位来做一下啊,首先在里边呢,我先创建一个类,这个类我给它起个名字就叫做soet pan。
02:00
把类总创建,然后创建之后,这里边我来写上这么一个方法,然后写完之后咱们一个一个来演示,首先第一步咱们先创建一个soet channel,把这个我们先不创建,那怎么创建给各位咱们来演示一下啊。我这里强调。创建socket channel呢可以理解为有两种写法,第一种写法直接用open方法里边new这个对象,然后第二种方式跟第一种方式类似,咱通过一个可耐方法进行操作,两种方式都能实现我们的效果,那这里边给各位我这位置都写下啊,那那代码我就直接复制了啊,首先我们看第一种写法。大家看这写法。咱们通过这个so拆到里边这个open方法,直接new这个对象里边加上你这个那种,比如说我们这个。
03:01
主机名啊,包括端口号,这是里边的第一种方式,咱们能够创建出一个socket pan,这是第一个啊,然后除了这个之外,里边除了第二种写法,跟它的写法基本上是类似的。第二种写法我们先用问方法,然后调一个可耐方法完成咱的过程,这是它的第二种方式。这种方式给各位,我这里边也是拿过来。咱们来看一下啊,两种写法基本上是一样的,咱就以第一种为例,第二种也能做到我们的效果,然后这个说完之后,我们这往下看啊,下面这里边呢,列了几个方法,这几个方法呢,主要是连接的检验的方法,那我们来看一下啊,有哪些方法。首先第一个方法意思open,它表示啊,就是测试so channel是否为open状态,第二个叫意思。
04:02
Collected表示是否被连接,第三个叫collection,这个方法表示是否正在连接,包括里边是否就是完成了里边这个连接,这些都是检验的方法,然后除了这个之外呢,下面有这个方法,这方法咱们刚才说过,就是里边支持这个阻塞和非阻塞模式设置,那这个给各位来写一下啊,咱们这个方法。就是设置你士阻塞模式还是一个非阻塞模式,那我们用这个so channel里面这个方法叫con。Block,然后这个纸呢,如果是who,那就是组合,如果是false,那就是非组合,是咱们说的一个方法,各位把它知道啊,和刚才基本一样,然后下面呢,这里边我们可以有这个就是相关的读写的这么一个操作,那我们来看一下啊,这个该怎么做,比如现在我这里边啊,大家看这代码,你看很简单,咱们就是创建一个八。
05:06
然后借用这个读操作。最终我们做close,包括这里边我们就是建一个buff法,然后操作这两个区别就是呢,一个是阻塞,一个是非阻塞,如果说你是这里边的阻塞模式,那它最终应该无法做这个打印,但是如果你是非阻塞模式,最终能完成咱们这个打印,所以里边就是这么一段基本代码,然后把这个给各位拿过来啊,这里边那个补脑这么一个操作。注意啊,这些读写都是面向换成去的,跟咱们之前那个file channel是相同的,所以咱们把这代码给各位拿过来啊,里边这个读写给我操作啊,这里边演的是一个。读打一个操作。那咱们来看一下代码啊,跟之前应该说基本上是一样的,所以现在这就是一段最基础的这么一段代码。
06:04
然后这个代码呢,咱们来执行一下,看一下里边的效果,大家注意啊,最后打印是不是这个read over,因为我目前是一个非阻塞状态,如果是阻塞状态应该没法做到这个打印,所以这是关于so的channel中的基本内容,然后除了这个之外呢,在so channel中也能设置和获取它的参数,设置参数用里边这个方法叫set option,获取参数用get option,比如我们设置保持这个存活包,设置它是TCB这个模式等等,在里边都能实现里面的过程通过set option还有get ocean做设置,包括里边这里写到啊,就是它里面相关内容,比如禁用什么算法,包括保持链接什么复用地址,包括缓冲区大小等等,在里边可以做这个设置。所以这就是关于socket China的一个基本的使用,各位把这个过程给他要牢牢记住,所以咱们的第二个so通道我们就演示完成了。
我来说两句