00:00
好,那么关于这个tdp的网络通信啊,咱们就告一段落了,接下来的话呢,咱们来看这个udp的啊,这个udp呢,咱们一开始不也说了,跟这个tdp呢,他们俩是有点区别的。区别就在于我们这个udp的话呢,它其实是一个不可靠连接,然后它对应的叫发送端技术端啊,不用了,三次握手,三次握手,四次挥手,咱们针对的是ttp啊,这个注意一下这个udp的诶的话呢,咱们这块就写个代码,大家感受一下就行啊呃,也不用了,当成是这个重点啊,咱们这一章里边呢,其实涉及到这个t d puu cp,诶这块的话呢,你要说重点其实也就是关注一下他俩的一个区别是吧,这样握手,挥手这块事儿,诶真正我们在开发当中更多的其实还是通过这个,诶比如浏览器的方式,我们写一个地址,就那个地址的话呢,就这个RL了啊,一会我们再说这个URL的编程的事儿啊。好,这个udp的话呢,咱们就简单的写个代码,大家感受一下就可以了啊,诶它对应的这两端呢,习惯上我们这块呢,称为呢叫发送端,所以呢我称为它叫。Send或者叫send是吧。然后另外一端呢,称为呢叫接收端,接收端呢,我们叫receive。
01:03
啊,或者叫receiver啊,它呢叫发送端。那这个呢,叫接收端。OK行,那这块的话呢,我们就下边呢,直接来写这个代码了啊,这个对于我们TP也好,Up也好,咱们使用的都叫做socket,所以呢,也都统称为叫做socket编程啊,那么对于我们这个呃,U来讲的话呢,它这个socket呢叫met。啊呢好ET呢,比如S一个ET。然后这里边写什么呢,这个我们把光标呢放到这CTRLP一下啊里边呢,虽然有一些参数,但是注意这块呢,我们对于这个发送端来讲呢,它里边呢,什么也不用放。哎,同学说,诶不对吧,我们讲这个TP的时候呢,需要指明对方的IP地址和端口号。
02:04
诶那个是没问题的,因为当时呢,咱们是通过这个socket的话呢,直接呢去发送过去了,然后呢,我们接着呢是形成一个通道啊,建立一个输入输出流,然后所以呢,地址呢,我们是写在这个参数这了,但是对于我们这个udp来讲的话呢,诶我们前面提到的概念叫做数据报了。回过来,我们再稍微看一眼。讲到他俩的这个区别的时候。啊,这块呢,我们提到了这个udp呢,它有一个叫数据报,他呢把这个发送给谁,诶对方的IP是吧,还有我们这个相应的一些数据都封装在了我们这个数据包当中,数据包也行,数据包都可以啊这的是一个概念,所以说这块呢,数据呢都是在我们这个。啊,Data gram packet里边的,所以呢,我们这儿呢,就不需要指明对方的IP地址和端了。行,那放在哪儿呢?刚才我们说的哈,叫贝塔。哎,Gram packet在这里边啊,这个我们就称为呢,比如说叫packet了。
03:02
OK啊,好,这块我们去new一个呢,叫diagram packet。就他然后呢,这个光标上一放,然后CTRLP一下,它的呢,对应的这个构造器还挺多的啊,我们现在要用哪个呢?诶注意我们需要呢,在这个里边,对于我们的发送端来讲,指明你要发给谁,所以呢,我们需要呢有IP需要有端口号。这个是需要的,然后前面这块呢,你看是一个字节数度,其实呢,就是我们要发送的数据了,诶那这块呢,正好我们要用的就是这个,诶构造器哈,这儿呢,你要发的数据是这个数据里边呢,呃,你从哪开始多少个长度是要发送的。啊,就是它行,那我们这儿呢,就做一个数据的一个封装了,哎,所以在这个位置呢,咱们就把这个数据呢,都放在他这里边啊首先呢,我们来一个啊叫ane address。那首先来个它啊,这个呢,我们叫address,后边呢,我们就点get by name啊给谁发,比如这块呢,我还是给自己发的。哎,就这样啊好,然后呢,我们再定一个这个端口号,这个不是哎9090OK了,行,哎,这呢,我们把这个参数呢放进去,然后再来一个这个port是吧,这个呢是后边俩参数啊,前面这块我们还得有具体的你这个呃数据啊,这个数据的话呢,我们就简单点这样来处理一下吧。
04:17
哎,这呢是一个string,哎,我这么着吧。直接咱们这块写啊,说我是发送端是吧,第2GET一个盖。哎,这样啊好,那如果呢,大家呢,你这个发动端和接入端呢,如果呢,就是大家呢演示哈,呃,你是一个端,然后呢,你的同桌呢,是另外一个接入端,你俩的这个次数机呢还不太一样,那发送工具呢,有可能会乱码,你可以在这显示的指明,我发过去的时候呢,就是UTF杠八的是吧。可以这么着啊,好,这呢,我们就接收为是一个字节的数组了。啊,这就我们这个数据啊,好,我把这个数据呢,是不是对应我们第一个参数,然后从零开始,一直到我们这个点Les就全部呢都发出去。哎,逗号一下。哎,这就可以了。
05:01
这个我们把这收起来啊,诶OK行,相关的异常呢,我们暂时呢,都给大家死入死出去啊。这个我就给大家整一个比较大的吧。哎,没问题了啊行,诶然后呢,这个这gra packet,就我们说的这叫数据包,或者说呢叫数据包,然后呢,我们有了这个socket以后哈,拿着这个我们这个socket点儿,我们再去直接给他发送吧。所以你把这个pack就给它发出去就可以了。诶,如果你要很多的话呢,我们对应的就是很多的这个packet了,比如其中一个呢,发我们这个数组里边的从零到比如它的一半的长度,另外一个呢,发呢是从诶后边那一半是吧,相应的这个数据再发出去,就是你把我们相应的这个数组呢,你可以分成好几部分呢,给他发出去,当然了,你也可以是好几个数组。啊,建立好多个的这个数据包,OK,这呢,我就做一个简单演示,发完以后呢,不需要了,我们就DS点做一个close的行为就可以了。OK啊,就这样写的,哎,我们稍微呢,写着这个步骤啊,然后第一步呢,需要我们去创建啊,Data gram socket它的一个实例。
06:05
这呢就是提到了我们说udp呢,通信呢,用到了这个socket了,然后呢,这个写完之后呢,我建议大家呢,你下一步要写的话呢,其实你就写这块啊。诶,我们拿着它干什么呢?发送数据吗?诶发送数据,发送数据呢,我们调的这个叫send,就是发送的意思,发送的啥呢?一看哟,发送的是叫你把这个光标把这个删一下啊,CTRLP一下,发送的叫data gram packet。啊,其实这块你也不用刻意的去记啊,挺长的是吧,他需要呢一个packet,就我们说叫数据包或者叫数据标了没有没有提前就造一个。呃,然后呢,你再回过去呢,去造这样一个littleg ground packet,造它的时候呢,呃,这块呢,你注意呢,我们需要呢,携带你发给谁的这个信息了,所以你挑呢,带这个啊IP地址和这个端口号的这样的一个构造器。那那对应的前面的就是你要发的这个数据了,那发现呢,这个没有,这个没有数据也没有,那就提前的去提供一下。啊,所以你看这个代码写的时候呢,你就写住写一个他你就记住这个diagram socket,再记住一个send的,剩下这个事儿呢,其实都是基于这个呢,找这个,这个呢需要一个它那就找它,它呢又需要几个参数呢,前面去补。
07:13
你看代码要这样写的话呢,其实你这个记忆量呢,就不用那么大了嘛。啊,你要是从上往下这块,你还得记这老多事是吧,其实不用了啊。行在这儿呢,我们稍微说一下啊。啊,这是我们的这个算是第二点了,说呢,将这个数据啊,这是我们这个字节数组了啊将这个呃,目的地的。啊,IP还有呢,这个目的地的口号。哎,都封装在。哎,咱们的叫packet,这个我们叫数据包,或者叫数据包都可以啊。它呢有一个大小的限制。啊,我们在这儿呢,不也看到叫64KB以内啊,也不能太大了,那你要说这个数组呢,比较大呢,刚才咱们说了,你就造好几个,哎数据报,然后呢,呃,一开始这个从零,比如说到这个,呃,举个例子啊,比如到128这个长度了,然后下一个的话呢,你就从128那个偏移量开始,接着再往后去取指定长度,把它分成到不同的这个数据报当中啊。
08:14
行,这个呢,发完了啊,关闭了,然后对于我们这个接收端来讲呢,他就来接收了,接收的话呢,它使用的也是啊data gram socket,所以第一步呢是一样的。啊一样的,只不过呢,这个时候呢,他使用这个构造器呢,变了,你能P一下啊,他呢有一个呢,专门带一个端口号。诶,我们对于这个接收端来讲呢,你是得指明一下你的端口号的啊。哎,这个呢,其实我们比如说叫9090啦,哎,然后呢,我就写到这儿了。是吧,哎,我这写的900990,然后上面这块呢,你才确定的这个9090。我们这是先他后,其实啊。好,那这个呢,我们M就有了呢,主要目的是来接收的啊,所以通过这个DS呢,我们实际啊。
09:00
接收的话呢,你发现呢,它也需要呢,叫diagram packet,没有没有我们提前的去提供是吧,这个我们叫data gram packet。来packet好,这块我们接着去扭一下啊,第二个我们packet你说P一下。那么这个时候的话呢,我们看需要呢,哪一个构造器合适哈。嗯,那这块的话呢,我们首先的话呢,你指定是自己来接收的了,是不是像IP地址啊,端口号这种就都不需要了是吧。呃,然后呢,主要的话呢,其实就是需要这个数据就行,呃,数据呢,像这里边儿呢,这个呢,就是默认偏移量就零了啊,你要愿意指定的话呢,就是从头从零去接收啊也行,这个呢,就是我们把数据呢接收到哪儿了呢?说是接收到这个拍里了,其实本质上来讲呢,还是放到它内部的这个数组里了。所以这个数组呢,其实就我们存储发送过来的一个数据的这样一个容器了。行,那我们比如就用它了啊,就用它的话呢,我们就这么着,首先的话,你得有这样的一个容器啊。哎,这儿呢,比如我就1024了是吧。
10:00
咱们知道其实你无外乎最多的话呢,不就是64KB吗。对吧,诶这是最大的这样容量啊,好拿着这个呢,我们往这一放,然后呢,从头开始呢,往里放,诶最多呢,你无外乎不就是放我们buffer.l这么多嘛。哎,就这样。就可以了,好这个呢,有了以后,我们直接呢,用来接收。那接收最后呢,你再把这个DS呢,做一个,比如关闭了。那就行了。那就这样啊好,所以首先第一步创建它的这个实例。哎,然后第二步。啊,相当于呢,我们接收呢,你放在一个数据报当中,所以呢,你得需要呢,去创建一个数据报的对象。对象啊,哎,用于接收。咱们这个叫发送端。哎,发送过来的数据。哎,这样就行啊,然后呢,这是我们这个磁节数组,其实本质上来讲呢,不是放到数据包里了,其实是放到它里边这个数组里边了,这呢就指明这个容器的一个长度了啊。
11:02
好,然后第三个呢,就是来接收数据。接收完数据之后呢,诶我们得打印一下啊,要不我哪知道说你这个数据呢,拿到了是吧?诶我们下面呢,就获取数据,然后呢,并打印,诶到这个控制台上。好,那么我们说这个数据啊,其实目前就都在我们这个数据包里边了,准确来讲啊,其实就在它里边。啊,那我们现在想把这里边数据呢给取出来怎么办呢?诶这个呢叫pack点,还有一个呢叫get data。这个data呢,就取出来这个数据了,其实说白了还是我们这个buff啊,诶然后呢,我们想显示到这个控制台上,干脆呢,直接我就造一个string得了。哎,你有一个string string这块呢,我们CTRLP一下,它不呢,就有对应的这个构造器,我们选一个,哎,有BY的数组,然后呢,它不一定这个是。就有这个1024,我们这个长度呢,是乘以这个64的,这个呢,显然是比较长了,它不一定有这么多数据啊,所以我们只取呢,呃,你有多少呢,我们就取多少啊,所以呢,首先第一个呢,哎,我们是先通过这个packet.get一个data。
12:06
实际上呢,就得到我们这个数组了,然后从头开始多长呢,这个pack呢,再往里边存的时候呢,它还有一个方法叫get一个lengths啊。就相当于我们到底往里边写进去了多长。啊,因为这块比较短嘛,到底写进去多长呢,我们这块就诶取出多长就可以了,这呢就得到这个字符串了,我们打印一下到控制台上就可以了。OK啊行,然后呢,呃,相关的异常呢,我们也给他去一下。你看这个也有是吧。好,正常来讲的话呢,还得应该用我们的开去处理啊,我这块还是给简略了啊,这呢就完事了,完事以后的话呢,对于咱们这个udp来讲,咱说呢,它不需要呢建立。这个三次握手,所以说呢,如果此时我们先去运行这个叫。发送短了啊。哎,这个时候呢,你看我们走起。这个接入端呢,我其实没有去执行。啊,所以这块呢,你看对于方总来讲的话,反正我就完事了。
13:00
哎,你看不到说有什么样的这个效果是吧。哎,这个呢就结束了啊,哎,那你如果说你这个接术端呢,要开着的话呢,哎,我这时候再去发啊,这块你就能接到啊。这时候呢,我们对于这个啊,这是咱们是发送端下前面这不就接收端吗,接收端点开这不就有吗。那说明就发过去了,OK啊行,咱们就做这样的一个稍微的体验就可以了啊,大家下来的话呢,也不用刻意的去写了,熟悉熟悉就行啊,这个呢,是我们这个udp的一个通信,通过这几个代码的一个编写呢,大家呢去熟悉一下他们二者的一个区别。啊就行啊,他呢,一定注意不需要握手。你像这个你接收垃圾短信不就都类似于这种方式吗?他要给你握手,你能给他握手。啊。你巴不得不让他给你发呢是吧。OK啊行,这个呢,我们可以呢,同时呢,使用udp呢,发送很多的数据包,所以这个效率呢,它其实是比较高的。呃,这个在军事上呢,其实有一种这个战术呢,叫饱和攻击是吧。
14:01
啊对,你比如说这个是中国的这个海岸线哈,现在这个美国的这个,比如说这个航母过来了啊,这块过来之后呢,我们要是同个时间,它这虽然有这个导弹拦截,但是拦截能力它也是有限的嘛,比如说同个时间的话呢,我们可以发送,比如说这个这个成百上千个这个导弹都打他的话,是吧,这个每一个导弹呢,你可以理解成就是一个数据报嘛。诶,每个导弹里边呢,是不是都独立的记录了,他要发给谁。啊,包括里边的弹药,弹药不就相当于这个数组是吧?诶每一个导弹里边都有记录啊,有点就像这个udp一样,然后呢,这个航母的话呢,一定不会三次握手是吧。他握手的话,那不是找死了成了是吧,诶他就只管发啊,那有可能这个航母如果在这儿呢,可能就打到了,如果没在这儿,那就掉水里了,所以呢,它会出现这种丢包的这个情况啊。诶,它是一个不可靠的一种通信是吧,这个清楚啊。好,这呢是我们说的这个udp,那ttp和up完了以后呢,我们这一张还设了一个呢,叫URL编程,那平时的时候呢,我们很多场景下呢,都是通过这个浏览器,浏览器呢,我们在这个位置呢,可以写一个具体的地址。
15:05
啊,我们就翻翻的叫域名了啊,然后通过这个地址呢,我们去访问相关的一些服务器的资源了。OK行,那么我们写到这块的一个地址啊,其实呢,它对应的有可能是一个资源,诶,那么如果是这种情况下呢,我们其实这种这个联网通信的方式就称为呢,叫URL编程了。哎,就这样个情况,首先这块呢,涉及到几个单词,叫做URL,这个URL呢,它是三个单词的缩写,全称呢叫uniform resource locator啊,诶翻译过来呢,叫做统一资源定位符。诶,它的一个作用是什么呢?它呢,我们说一个一万二就对应着互联网上某一资源的地址。啊,一个具体的。哎,这个我们说一个U2啊,就对应着。哎,互联网上某一资源的这个地址。
16:00
哎,这呢,我们就称为呢是一个URL。这个大家。了解这个不?啊,爬虫的时候呢,我们就有一个具体的地址是吧,对或者这个UR的话呢,平时我们还有一个,呃,习惯上大家叫的一个词呢,叫做种子是吧。啊,有很多同学意味深长的熬了一下是吧?像在很久很久以前,大家如果有一些资源的话呢,U盘都比较小是吧,存不了那么多资源,所以你就放了一些种子是吧,他呢,可能只有几个词节是吧。啊,然后呢,当你需要用的这个资源的时候呢,然后呢,你把它输到这个浏览器这块呢,就可以访问,但是经常一访问的时候呢,就404的。啊,因为什么呢。被封了。啊对,被封了,那是因为你那个不合法是吧,你要合法的话呢,不能叫被封了,就是资源呢,它就不放那个位置了,服务器呢,就没找到那个位置的资源了是吧?哎,这叫404了啊。OK啊。
17:01
行,这个。这是正经事儿是吧?诶,任何资源的话呢,都是一个URL啊,俗称呢是一个种子是吧。OK,大家现在下载电影都去哪下载啊?啊。比如说电影天堂呀之类的是吧。嗯嗯。行,哎,然后呢,你像这个URL的话呢,如果你要有这样一个地址,你可以使用呢,是不是像迅雷这样的工具。这个我打开我这儿下载的都是正经的东西吧,嗯嗯哎,这呢是不是有新建啊。哎,我就不登录啊,这个新建的话,你点这个位置,其实你就填一个UR就行了。哎,它那对应的是个资源,然后你点下载,它就把那个资源给你下下来了,你可能是一个图片啊,你也可能是一个视频,哎,或者是其他的一个资源,哎,这样就可以了啊。好,这呢就称为一个叫URL。那具体这个ul呢,它其实对应的有一个格式啊,那这块我们怎么去演示呢,是吧,而且说得对应的资源那。
18:04
你得有这个资源啊,这块呢,首先我们一般呢,咱们通过浏览器都是联网访问的某一个服务器下的资源了,那现在呢,我就不演示这个访问远程的了,诶我自己电脑的话呢,也可以起一个服务器。啊,这个后边呢,我们也会去讲啊,在自己电脑上咱们可以装一个叫toca的一个服务器啊,这个安装的话呢,呃,相应的步骤呢,我也给大家了,一会儿再说啊,先让大家看一下我这个他派的话呢,把它装在了我这个目录下的这个位置了。啊,就装到这儿了啊,其实类似于我们JDK一样,直接呢,你就放到这就行,放这以后的话呢,相应的需要配环境变量啊整个这个做法的话呢,我这儿呢,提供了一个文档。啊,包括呢,这个汤盖我都放这儿了,非常简单啊,大家如果你想下来测试的话呢,你就自己做一下啊,不做呢也没关系,因为后边呢,像呃外部阶段的话呢,还专门会去讲这个事儿了啊。好,那么有了这样一个服务器之后呢,目前它就是一个程序躺在这儿的,我得让它跑起来,跑起来的话呢,你就可以呢,点了一个B下边有一个叫做startup。
19:03
啊诶这个时候你可以呢,双击呢就可以启动起来,或者的话呢,我可以呢WIN2一下,诶我通过命令行这个方式去启也行哈,这个我输入呢叫凯塔琳娜run。哎,这样一下啊,开的两点转啊,然后一回车。这儿呢,我就把这个汤开呢给它提起来了啊,下边这块也有说明,花了多少毫秒把它启动起来了,诶它这块呢,你上面看一眼啊,其实这块没有相关的异常,这是没问题的。那你看啊,我现在已经起起来了啊,起来以后呢,我这块稍微在这演示一下,比如我们再问二一下。再掀一下,我起起来以后呢,这个他CAD它其实有个端口号。它的默认端口号呢,就是8080,我已经起起来一个了,你还能再起一个吗。对开了列那转,因为呢,我们说进程的话呢,它的断号不能一样啊,要再起一个的话呢,这块就要报异常了。对,你看上面这块已经出现了,说我们这个地址呢,是不是已经被绑定了。诶说明这个就没起成功啊行,那前一个呢,这块我启动的是成功的,成功以后呢这呢我就相当于启这个服务器了,取完服务器之后呢,我就可以通过我这个,诶浏览器呢,可以去访问了哈,诶HTTP。
20:11
啊,这个呢,我是127.0.0.1是吧,然后呢,是不是8080啊。哎,就这样对应的这个端口号,好,我直接回车。这块的话呢,你看它有这样的一个页面呈现,这就说明呢,我这个服务器呢,就启动成功了啊。啊,你看这时候你注意啊,我这个地址呢,写的是它,我把这个呢,我先CTRLC一下,咱们稍微的粘过来,我就先放这儿吧,你发现呢,我前面这块呢,是以这样的方式访问的。这个呢,是通过网络应用层的一个协议了,我可不是写的这个。比如说像什么呀,呃,这块打开啊,像这块我们写一个,比如说F盘的啊,谁谁下的一个什么什么东西,这个呢,完全就是我们物理磁盘的一个概念是吧,而这块儿你看它是一个通过一个网络的一个协议的方式来访问的。啊,所以这块呢是一个它呢是一个浏览器,你也可以看成是一个特殊的客户端,通过网络呢,我们去访问一个服务器的某一个页面下的一个资源了,那如果说我要把这个服务器呢,那现在我CTRLC一下啊。
21:12
哎,我就把它给关掉了,关掉以后的话呢,你看我这时候再刷新。啊,因为我们是通过联网的方式访问的,服务器已经关了,是不是就访问不到了。那就不行了。啊,这个注意一下啊,行,那这块我们可以呢,再把它呢给提起来嘛。那我又记起来了,砌起来以后的话呢,这块你再刷新一下,这不就过来了吗。OK啊行,然后呢,这块稍微提一下,这个127.0.0.1呢,咱们说这是一个本地的一个。啊,回地址了是吧,比方说我们是本地的一个IP,诶它呢,也对应着像域名一个。啊叫法啊叫做local host,所以你写幺二七点零点零点夜行写local host呢也可以。还是他啊。好了,然后呢,这个服务器呢,对应的这个目录在哪儿呢?就是我刚才呢,诶这个位置啊,这个位置下边呢,我们可以放一些资源,默认呢,它访问的这个路径呢,实际上是在这儿啊叫web apps,就我们相应的一些web的应用程序啊打开。
22:12
打开以后的话呢,这个位置我们其实就可以放一些资源。哎,这呢是它算是一个根目录了啊,那我比如说不放这儿,我就放到其中的一个叫in examples里边,哎,就可以在这了,在这里边你一进来发现哎哟有一个index.more是吧。这个呢,你看我要是双击一下这个使用的是这个360了啊。又改成是这个Chrome打开。大家你看啊,我这时候打开的话呢,你看它显示的是不是D盘下的。这就是纯是一个物理磁盘的这种方式来访问的了。啊,那我把它呢收起来,我呢,哎还得再打开是吧,然后在这儿哈。你看我看一下他这个物理的地址,我呢通过网络的方式呢,去访问一下它下边,诶默认的这个路径呢,其实是在这个web APP了,那既然默认呢,我现在打开是它的一个子目录嘛,那就直接写。
23:00
Examples是吧,它下边有个叫index.a是不是就这意思啊,回车一下是不是就访问了。这个访问你注意我是通过网络访问的,而这个访问呢,就纯属物理磁盘的文件。那就意味着如果这时候呢,把网关了的话呢,你这个是不是还能访问。而这个就不行了是吧。诶这个注意行,然后呢,在这块的话呢,我们就可以放相关的一些这个资源了。比如说放一张图片啊,这呢,也是大家那会儿发的图片,这个看着。挺好是吧,啊这个呢,把这个名,比如说改一下ABC吧。啊,有叫ABC了。Abcd吧。行,哎这儿呢,我就把它呢CTRLC一下是吧,我把它呢,放在我的这个example的这个位置了,放到这儿了,放这以后的话呢,诶这时候我就可以呢,在这儿呢,通过网络的方式呢去访问了,其实大家呢也可以访问,但是你访问的时候呢,你就别写这个local host了。你就得写我的IP了。是吧,我的IP不是192.168.21.107嘛,是吧。
24:00
然后这块的话呢,我们就index这个位置,你把它改掉哈,改成abcd点嘛。哎,这不就访问了吗?哎,这时候就通过网络呢,我们来访问的。是吧,哎,这样个情况啊好,然后呢,诶我这呢,就以它为例吧,CTRLC一下粘过来,我呢就比如说也放到这儿吧。啊,这个呢,其实就对应着我们一个UR的一个基本的格式了。OK啊,这个格式的话呢,我们稍微下边说一下,这个HTTP呢,就我们属于应用层的协议。是吧,对应的叫HTTP协议,后边呢,在Java外B当中还专门会去讲这个请求响应啊,相应的请求投请求行应体响应行响应投显应体是吧,相应的一些这个要求是什么会说啊,后边这个LOCAL4LOCAL为代表的,比如我换成个幺九二点幺六八点,诶这个21.107是吧,这呢有一个具体的一个IP地址啊。然后后边这个8080呢,就是对应的tomcat这样的一个进程,它的一个端口号哈,然后在后边呢,就相当于是我们某一个资源的地址了。
25:08
OK啊,你可能是某一个目录下的某一个具体的资源,这样啊行,那有的时候呢,我们会发现呢,这个资源后边呢,可能还会携带一些数据。这个数据的话呢,就会以一个问号的方式,比如说啊name啊叫Tom。啊,这样的方式把它呢就称为呢叫参数列表。OK,诶,这样呢,就构成我们整个UR的一个具体的格式了。哎,就是长这样子的啊好,这个呢,我们就说清楚了,那下边我们知道这个事儿以后呢,能做什么呢?诶我们在Java层面呢,可以使用这种UR的方式呢,进行通信,进行编程,那就对应的叫UR编程了。AR编程呢,这块你又是一个。咱可以说呢,叫一个字符串也行,就像我们说的一个IP地址一样啊,那我们要是进行编程了,诶,咱们又得体现了,叫万事万物皆对象了。
26:01
哎,所以这块大家应该积累了一些素材了啊。哎,万事。万物。呃,接对象那就意味着的话呢,我们这样的一个地址啊,资源的一个地址,我们在呃Java层面,如果呢,想进行一些操作的话呢,我们就得把它封装成是某一个类的对象了。恰好呢,这个类呢,就叫做ul类。OK啊行,那所以呢,我们现在啊,去创建一个啊,URL的一个测试过来啊,这是咱们写一个,比如说没方法吧。好,那刚才呢,我们看到呢,这是有一个具体的一个它了,咱们可以把它呢,就认为呢,先放到一个字符串当中吧。是吧,哎,我就先放到这儿了,行,然后呢,接下来我们想把它就是你你让他以一个字符串方式去呈现的,其实是不对的啊,因为我们要编程的话呢,它有一些方法,这个方法一定不是字符串的方法了。所以这时候我们专门有个类就叫做URL啊好,那我就一个具体的URL。哎,就这么着了啊,然后CTRLP一下。
27:02
啊,这得先指明啊,Alt加回车打包这个呢,注意是咱们net包下的。好这块呢,CTRLP一下,我们呢就可以传一个具体的一个死论了,哎,就把我们这个itr呢,你给他整过来。诶好,前面的话呢,我们拿UR接收一下。哎,这就可以了。他这块上有异常,那没方法了,那就快开始吧。哎,这样的啊。哎,这样的情况好,诶这块的话呢,我们就得到这个URL了。那就封装到这里边了,行,那拿着它能干啥呢?它下边呢有一些方法,这个方法呢,咱们熟悉一下就行啊,回到我们这个课件这个层面,找到这个URL常用的方法,诶这呢有几个这样的方法啊,CTRLC。哎,我们就测试一下这个方法。哎,我先粘过来啊。哎,其实呢,也比较简单。好,这个呢,返回值呢都是此类类型,所以呢,我们就直接呢去调这个ur.get呃,相关的这个比如呢,首先我们就要get它的一个叫哎protocol,就获取它的协议了,既然呢你是个字符串,我就直接打印了,这呢一共是有六个是吧。
28:10
哎,这个我们就意思了啊,Get protocol获取协议,其实呢,就把这个HTP呢就取到了,哎,Get host。获取主机地址就有IP地址,Get part,获取你的端口号是吧?Get pass,获取这个文件的路径啊,Get file啊,获取这个文件的一个名。然后get query。啊,这是叫查询名,你看这是啥,咱们测试一下就知道了啊好,这呢,我们把这几个呢就放到这儿了啊这呢也是它相应的这个作用来run一下。哎,这就出来了,看一下啊,首先呢,Get一下这个portocol协议,这协议不就是attp协议吗?哎或host,哎,这个IP地址,这个port端口号2080,嗯,然后后边这个get pass整个路径,整个路径呢,是包括我们这个在在内的啊到这儿,然后呢,获取你的这个file啊,其实呢,整个后边呢,就都算上了。
29:04
然后呢,呃,Query这个我们叫查询是吧,其实呢,就是我们后边呢,这个问号,相应后边这样一个参数列表,哎,就给我们展示出来了。啊,你比如说咱们这个查百度的时候呢,这不有个搜索嘛,这叫百度一下一点击啊,前面你写的这个词条,这个词条的话呢,其实就以一个参数列表的方式呢,去呈现发送给我们后台了。诶,然后后台呢,我们可以获取这样的一个呃,参数列表的信息,看你到底是想做什么OK。这呢,就我们说的URL的一个基本的一个操作了,嗯,这是回过来就是它的这个实例及常方法,这个呢,我们就直接呢叫诶建代码是吧。好,这呢,基本上关于它的这个类呢,我们就熟悉一下啊,然后拿着它能做什么呢,稍微我们就了解一下就行啊,那既然呢,你表示这个资源地址呢,我们是不是就可以把你这个资源给下载下来呢?诶我们说那是可以的,你要使用这个浏览器的话呢,其实你直接在这块右键,它也支持着去另存为。相当于下载是吧,在咱这块呢,想通过这个编程的方式呢去实现,来我们去写一下啊。
30:04
这个我们叫UR的一个,比如说叫T1啊。这个我们做的这个需求。啊是将啊URL啊,它呢代表的这个啊资源。哎,下载。啊,到本地。OK啊,这呢,我们就做这个事儿了啊对,这事呢,写成单元测试吧。行啊好,那既然呢,你要下载这个资源了,首先的话,你得有这个资源地址了,比如我们刚才的URL呢,你肯定是需要的了。哎,这块你看咱们试着呢,来写一写,看看大家有没有这个印象啊,你有个U。诶,看看我们刚才说的几个部分啊。先把这个我们先打下包。哎,首先呢,叫HTTP。协议是吧。这个冒号呢,是这样的习惯啊,然后呢是127.0.0.1是吧,对应的端口号呢,叫八零八零下的,哎,Example啊这样目录下的。
31:02
这个这个你看一眼了啊。下的有个ABCd.GPG是吧。啊,Abcd加GPG,哎,这不就我们对应的这个资源了吗。好,我想把这个资源呢,给大家下载下来,就这意思,这呢我们先给他去收出去啊好,那拿到这个URL以后呢,下边能做什么呢?这我们说它的另外一个方法了啊,通过它呢,我们可以呢去open一个connection,就是获取一个连接了。啊,获取一个连接叫open connection,这呢我们得到的,咱们先把这个异常先抛一下啊这块呢,我们得到呢,其实就是一个叫UR的一个connection了。但其实这块我们因为使用是HTP协议了,所以它对应的其实叫HTTP的一个URL connection。啊,实际上呢,是可以得到具体的它的,它呢相当于我们刚才那个connection的一个具体的子类了,啊,所以我这呢做一个强转了。啊,因为HTTP的嘛,啊好,那有了它以后呢,其实下边做这事呢,也不复杂啊,咱们目的呢是想啊获取到服务器端那个数据,那对于我们这个当然也可以理解成是个特殊的客户端了啊,是不是它的整个输入流啊。
32:09
然后呢,把这个数据呢输入过来,然后呢,我们自己呢,想保存到本地的话呢,自己再定一个输出流保存到本地是吧,所以呢,拿着这个连接呢,我们就直接呢就get一个input stream了。非常的方便哈,这呢我们就得到一个输入流,这个流一旦得到了,剩下这个事儿呢,基本上又回到我们熟悉的场景了,先你一个file。是吧,哎,这呢,比如来一个叫di.jpg,哎,我想放在这个图片里边啊,位置上啊,然后呢,我们再来一个file output stream。哎,Fair out of the stream,然后把这个file呢往这一扔。妥了是吧,然后接着的话呢,我们就哎贝的一个数组。哎,1024。In的一个len,哎,这不就很熟了吗?这个is.read到这个buff里边。
33:03
哎,不等于负一。哎,Fos点出去。0L,哎,这不就可以了吗?这个完了以后。这就完事了。这样是不是就关闭资源了?啊,关闭资源的话呢,注意首先FS点。Close一下,然后呢,嗯,is.close一下,注意我们这个连接是不是也可以关掉。哎,这个连接的话呢,它叫叫disconnect。哎,它不叫close啊,它叫disconnect,哎,这就行了。就完事了啊行,这个完了以后的话呢,我们这块呢,咱们再诶。别用了,咱们自己写一次吧,好把这个呢包起来,CTRL再加个T。TRY开始finally,然后1.print,哎,把这三个呢提上去。Control shift上。哎,提上来。OK啊行,然后呢,再分别呢,给他们做这个try catch的行为。
34:02
你这么着是吧,他这块的话呢,没有抛异常,那就直接我们这样就行了。然后呢,这块再去补一个哈,嗯。它呢,也不等于no是吧。这是一个啦。哎,不等于no。哎,这个我们也补一个哈衣啊。哎,这么着啊,行,就这一行,我就省略这一对大括号了,CTRL再加个L再调一下。嗯,这个就可以了,简单的写一下我们这里边注释哈,第一个需要呢,我们诶获取。呃,U2它的一个实力啊。好,然后呢,通过这个实例呢,我们相当于呃,建立与服务器端的连接。啊,建立啊与。端的这个诶叫连接了好建立连接以后呢,我们就可以获取一个相应的这个输入流。哎,获取输入流,然后呢,我们再去创建一个输出流,哎,然后下边就我们具体的要诶读写数据。
35:07
哎,整个这个套路的话,跟我们IO这块呢差不太多,就前面呢,需要多一个连接的一个事儿啊。哎,录些数据,最后呢,关闭资源。诶就可以了啊,这个位置你要愿意加一句呢,我可以写一句哈,说那叫诶文件下载完成是吧,诶就可以了,行这块呢,我这个服务器端呢还开着呢,通过这个浏览器呢,你可以验证一下啊,刷新没问题,说明我们开着呢,开着情况下呢,我们现在就点一下这个run了。说文件下载完成这块呢,叫。哎,我们叫desk.tpt.ppt啊,打开没问题。啊,这个图片呢,我们就通过这个URL编程的方式呢,把这个资源呢,就下载到本地了。OK啊,就行啊,行,这块呢,大家熟悉一下就行了啊后边我们在这个web阶段呢,其实就会讲这个基于我们这个汤开的这样一个服务器,诶我们这个服务器里边呢,像在这个下边呢,我们就可以放具体的一些项目了,咱们用Java代码来写的,然后呢,诶客户端啊,这块呢,我们就先不具体写客户端了,Java现在呢,写客户端这个情况已经极少了,咱们就通过浏览器呢去访问就行,在浏览器里边呢,像atml CSS JS是吧,就是后边我们相应的一些这个技术了,诶主流的话呢,现在前端用的框架呢,就是这个view框架。
36:21
啊,这个有人念will啊,其实标准的话应该念view啊。呃,View这样一个框架,然后呢我们去写这个前端的代码,然后呢通过这种呃网络的方式,我们呢去跟后台的Java代码放在我们汤K的这个服务器里边的,让程序呢进行交互,然后呢再往后呢还有数据库。啊,数据呢,我们持久化呢,都放在数据库里边这样场景啊。这里边儿的话呢,比如说简单演示一下,你还可以呢,再去写一些其他的文件,比如我们这写一个hello.t。是吧,比如把这个打开啊,这个位置呢,我们可以写一个,比如说叫哎世界。那么大。哎,我想去看看是吧,好保存一下,这呢就是一个资源嘛。
37:01
这个资源的话呢,如果我们通过这儿呢,去体会是不是也行啊。哎,你把这个ABC的你给它换掉。我就改成那叫。嗯,hello.t你看是不是也能看?没问题啊,那这块呢,我们,诶后边也会讲啊,说这是浏览器,这个呢,是看到我们服务器中的一个资源了,这时候字符集是不是得对应啊。啊,要不对应的话,那不就乱码了吗。啊,你比如说我们这个hello.t打开这个时候咱们啊CS我这用的是NSI是吧。我把它改成UI8吧,哎,保存一下覆盖了,然后呢,我们在这个哎Chrome里边刷新一下。你看就乱码了,相当于它这块呢,应该默认识别过来呢,是PBK是吧,这个以后呢,我们在代码里边会设置哈,就是把这个文件呢,响应给我们浏览器的时候呢,我们可以指明呢,你是以什么样的字符进呢,发送出去的。哎,都可以指明这个Chrome这块的话,没找着他在哪块去改哈。那咱们这样吧,我把这个呢,我CTRLC一下放到咱们这个。哎,比如CTRLC这个这个迅雷开着呢。
38:03
迅雷这块呢,它监听我这个操作了是吧,好,我CTRL一下粘到咱们这个3.0这块啊,它这块你看没有乱码,这个它是可以设置的啊。点错了啊。右键。在哪呢,在这呢是吧,好,你看这时候呢,他这是叫UTF8啊,因为咱们刚才这文件不就是UTF8的吗?你要是写成JPK了是不是就不行了。啊,然后呢,这个文件呢,如果我们再把它改成是这个。啊ASI的,这就相当于服务器端这个文件呢,就是JBK了,然后呢,浏览器这块呢,我们这不是JBK的嘛,刷新一下这就没事了吗。所以呢,只要呢,出现乱码了,一定是字符体不对应的啊原因造成的啊。好,那么咱们这一章的话呢,其实也就这些内容,整个这一章呢,对大家要求呢不高,就知道一些基本点就可以了啊,相应的一些代码呢,呃,想写的就写写,不想写的也没关系啊,熟悉一下里边整个这样的一些原理思路就行。好,那么关于网络编程这一章呢,咱们就告一段落了啊,然整个来讲的话呢,这一章呢,不算是一个特别重要的章节,诶,所以这块呢,相应的这个内容呢,大家诶也跟着这块学下来呢,其实也就可以了啊,不用花太多的精力了,我们去这个研究这一章了,然后这块儿我们也做一个复习,来打开我们对应的这一章啊OK,好,那我们这块呢,首先来看一看,整个这一章呢,我们讲了这样几个事情啊,一开始的话呢,我们算是讲了一个叫诶网络编程的一个概述。
39:26
啊,这儿呢,咱们也归成相应的这样的一个点啊好,然后呢,第二个事儿的话呢,我们提到了网络编程当中呢,提到三个问题,那针对这三个问题的话呢,我们就对应的有三个要素啊,那首先呢,这个叫要素一这块我们就提到了叫IP地址,诶OK,然后呢,我们分别呢,把这几个要素呢,我们就分别做一个这样的主题啊然后呢,这个142呢叫端口号。然后呢,要素三。哎,这个我们称为呢,叫网络协议啊,或者叫网络通信协议。诶都可以行,这呢,就我们对应的这样的几个要素了,然后下边的话呢,我们从这个代码层面来讲的话呢,就提到了叫TCP的,叫网络通信或者叫网络编程都可以。
40:09
然后接着第六个呢,叫AUDP的网络编程。诶,网络编程啊好,然后最后这块的话,我们就提了一个叫UR的一个编程。整个的话呢,我们这一章呢,就算是呢,有这样的几个内容了,OK。这个我把这个。检查就去掉了啊行,那第一开始的话呢,叫计算机编程的一个概述,这里边儿呢,我们提到一个叫计算机网络的一个概念。行,哎,网络啊。这个概念的话呢,大家做一个了解就可以了,哎,咱们在整个这个课件上呢,最开始的这个位置。哎在上边儿,哎在下边这块啊。诶,这块呢,提到一个计算机网络一个概念,这个呢,也是大家作为一个了解就可以了啊,然后脑海中浮现呢,其实就是整个呢,我们这样的一个网络的这样一个图形,OK啊,然后呢,这里边儿呢,我们提到了说网络编程的一个目的是什么,其实呢,非常直接,目的呢就是为了实现通信啊,所以这个概念的话呢,这个我们就。
41:06
放到这儿就略了啊,大家做一个了解就行了,诶网络编程的一个目的就是直接或间接的呢,诶,我们跟网络当中的相应的一些主机啊,进行一些数据的交换,说白了就是为了通信啊,那下边呢,就提到说要想实现通信啊,我们说的需要解决的三个问题。在这儿呢,大家诶也是做一个了解就行啊,然后三个问题的话呢,就提到我如何呢去定位一台或多台主机是吧,然后呢,如何定位主机上的特定的应用,哎,如何可靠而高效的进行数据的传输啊这呢就我们对应的这三个问题,针对这三个问题,我们下边呢提到了三个要素,第一个要素呢,我们叫做IP地址啊,它呢非常明确,就是我们使用。啊,具体的啊,一个IP地址来对应。啊,然后具体的一个这个互联网上的主机啊。
42:00
主机啊,OK行,这来就提到IP地址这样一个概念了,然后这块呢,我们接下来就涉及到这个IP它的一个分类是吧。哎,这个分类的话呢,我们是有两个角度哈,这个呢也是大家熟悉一下就行。这个角度一。那这个角度一,角度一的话呢,我们提到呢,分为IPV4啊,还有这个叫IPV6啊,这个呢,对应的是四个字节是吧,这个呢。16个字节是吧,对现在的话呢,它这个存储的,我们说现在的这个IP地址的这个量呢,就有很大的区别了啊,然后呢,IPV4的话呢,我们说比较少,大概就是40多亿是吧,早已经用完了,大概在2011年左右的时候啊,然后后来的话呢,我们主张呢使用叫IPV6,这相当于是占16个字节啊,它呢存储的范围呢,就非常大了。OK啊,然后呢,这是它的一个分裂的角度,然后那个角度二呢。诶这个呢,就提到我们有一个叫诶公网的一个地址是吧。然后还有一个呢,叫哎丝网那个地址。
43:03
OK,然后这个所谓的公网地址呢,就是我们相当于叫外网了是吧?诶我们可以通过这个浏览器呢,来访问的外部的一些互联网资源的,然后这个私网的地址的话呢,就是我们说的一个私有地址,私有地址的话呢,比如我们这个局域网啊。诶这个局域网的这种场景的话呢,我们其实呢,就相当于是这种叫诶死网的这样的一个地址了啊OK,行,这个呢,就是我们不同的一个分类的一个角度,这块呢,大家也是了解一下就行,OK,然后具体的话呢,我们说如何呢,在我们代码层面呢,去表示一个具体的IP地址呢,我们用一个字符串呢,就不太合适了,这里边儿我们相当于使用。哎,叫I dress这样一个类啊。OK。哎,使用这个类呢,我们来去表示这个IP地址。嗯,OK行,那既然呢使用这个类呢来表示的,下边我们需要做的事呢,就是如何呢去创建对象,那这呢就提到了这个诶实例化的这个方式了。哎,实例化方式啊,那对于我们这个类来讲呢,它的构造器呢,是私有的,我们不能直接去new了,这个它提供了对外的叫哎磁带这个这样的方法了啊,叫get by name,这是一个方法,里边呢,我们写一个这个词型的一个host就可以了,那一般的话呢,我们这里边写的都是一个呃,IP地址,或者你写成个域名啊也可以啊,哎,然后另外一个呢,叫get,叫local。
44:21
对,Host,这呢是获取本机的这样的一个IP地址了,这是实例化的方式,然后呢,下边就是常用的这个方法,这个呢就是get host name。啊,这是一个啊,再一个呢,叫get host address啊,它的一个呢,是试图呢获取它的一个域名,这个呢是获取他的IP地址,那这样的两个简单的方法那就可以了。好,这呢是对应的我们这个叫an dress这个类的一个使用整个IP地址这块呢,其实就是这个内容,然后下边一个呢,叫做端口号,诶它呢就对应着我们上面提到说如何定位这样一个IP地址下的具体的一个应用了,或者叫具体的一个进程了,所以这块呢,我们说呢,端口号呢,就是用于区分啊同一台。
45:04
哎,同一台这个主机上的不同的进程。哎,上的,诶不同的这个进程啊OK,哎,那这里面呢,自然而然呢,我们说呢,就不同的进程呢,就分配不同的端口号。诶不同的这个,诶端口号啊,诶这块呢,其实有个小细节,就是比如我们两个咱叫进程了,其实呢,就是它一定是呢,现在正在运行了。那那这个没有运行的时候呢,我们前面讲多先生提过说就是一个普通的程序了哈,诶你比如说呢,咱们这个tomcad吧,这个tomca的话呢,如果他要没有启动的话呢,诶或者启动了以后,咱们这块对应的叫8080,这是一个默认的一个端口号了啊假设呢,我现在有其他的一个程序啊,这个程序呢,假设用的也是8080。如果呢,我们这个topad呢,没有启动,然后呢,我们这个8080的这个程序呢,能起来不。诶对是可以的是吧,就是这个时候我们提到叫进程,进程呢一定是现在正在执行的,就执行过程当中呢,你不要出现这个这个同一个端口号的,那你要说两个程序的话呢,是同个端口号,这个启动的时候呢,它没启动,其实这时候没有啥影响,就是你只要别同时启动就可以了。
46:12
当然呢,你为了避免是吧,他这块万一同时启动啊或怎么样的,那我们在一开始分配的时候,干脆就不要分配成是一样的了。OK啊,包括呢这个tomcad,如果在咱们自己电脑上,你说我就想启动两个,那就是一个呢,叫8080,然后你可以再起一个的话,你换个端口号,比如说叫A8989是吧,这时候呢,其实也可以起两个汤开啊,这是没问题的。好,这是一个事啊,然后呢,呃,既然呢,提到了不同的进程分类不同的端口号了,那下边一个点呢,就是端口号它的一个这个数的一个范围是吧。范围公式从零到对65535这样一个范围啊,这呢相当于是一共是65536个数,就是相当于二的这个十六次方是吧,这么多个数,OK行,这个呢,我们清楚他呢就可以了,然后下边呢提到叫网络通信的协议,哎,它呢对应的就是解决我们上面这个第三个问题的。
47:02
诶,我们对这个网络呢,进行一个分层,这块呢,提交了两个参考模型啊,这个咱们课件里边也都有写。嗯,这个参考模型,这个参考模型的话呢,大家也是做一个了解就行啊,这里边儿呢,提到了一个呢,叫osi的一个参考模型,过于理想化了,没有推广开,然后t t pip,这个参考模型是成为我们事实上的一个国际上的标准。是吧,这个呢,大家做一个了解就行。啊,这个呢,我们做一个了解。把这个往后伸一下啊。好,这呢是我们说的这个事儿,然后的话呢,这里边儿呢,注意我们TC pip的这个参考模型呢,其实不光是这样的两个协议了,是以传输层里边的TCP和网络层里边IP呢这两个为主啊命名的,它呢其实代表的是有这四层,现在的协议呢,其实很多。OK,然后呢,针对这个传输层的话呢,我们说除了tdp之外呢,还有个叫udp,所以下一个点呢,我们需要稍微关注一点的就是这个,诶gtp和udp他们俩的一个这个对比是吧?这块呢是一个对比,这个对比的话呢,有的时候这个比试题呢,可能会问一下是吧?然后呢,大家呢,把这里边看我标红的这个呢,稍微的你注意一下,做一个描述就可以了。
48:10
行,这块我们稍微再拿过来,下个点呢,就是在传输层中。诶中,诶我们说呢,涉及到哎两个协议。啊,一个呢叫TCP啊一个呢叫udp,然后呢,这里边呢,二者的一个对比是吧,这个我们稍微关注一下,主要来说的话呢,这个TP呢,我们说它是一个可靠的链接。嗯,怎么体现它这个可靠呢?哎,这里边儿就提到了,我们在连接或者叫发送数据之前。哎,是不是需要呢,三次握手是吧。哎,三次握手。呃,然后呢,你这块呢,在这个断开连接的时候啊,你不能说我这块说断开我就断开了,可能这个服务端呢,数据还没有给你这个发送完成的,所以这块在挥手方面呢,我们也要保证它是一个可靠的,也提到了叫四次挥手。
49:07
OK,那通过这个呢,我们能看到它实际上是一个可靠的链接,那么对应的我们这个叫AUDP,它呢就是只管发送啊,他就不管呢,说对方呢是不是在线是吧,所以它呢是一个不可靠的连接。啊,这个体验不可靠呢,就是发送前不需要啊确认对方是否在是吧,所以这呢就体现它的一个不可靠的一个特点了,然后呢,它既然是个可靠了,然后呢,我们建立一个我们是通过这个ET是get啊get output,这呢就建立了一个通道了,那基于这个通道的话呢,我们说呢,就可以进行大数据量的一个传输。这个诶传输是吧,这呢是它的一个特点,然后我们这个udp的话呢,它呢,其实呢,是通过一个一个的数据报的方式呢,做的这个传输。哎,所以这块我们就提到了一个叫数据报的一个概念啊,说呢就是使用呃数据报进行一个传输,而这个数据报的话呢。
50:08
它有一个大小的限制是吧,限制在叫64K以内。啊,64K加个B吧啊以内,那如果呢,我们这个数据量比较多的时候呢,那我们就需要呢,传送多个数据报了这样一个特征啊好,然后呢,这个tdp的话呢,它相较于我们这个udp啊这呢说的相当于都是它的一个优点一样啊,那算它的一个缺点是什么呢。啊,就这块儿呢,它在传输的时候呢,整个来讲这个效率呢,是相对来说低一些。啊,因为你可靠嘛,那相对来说呢,这个传输的效率呢,就要低一些,而我们这个udp的话呢,它呢,其实可以同时呢传输很多的数据报。啊,然后它的这个效率呢,相对来说就高一些。啊,它呢,可能是存在我们说的这个丢包的这种场景,诶所以呢,我们发现呢,有一些相应的一些比如视频会议呀,包括呢,大家实时的看一些远程的视频呀,这个时候我们选的都是这个udp的这种连接方式,而这个是比较可靠的数据呢,不会存在这个丢失的这种场景。
51:04
OK啊,这呢,就我们说他俩的一个对比了。行,然后呢,下边呢,就提到了说这个attp,它对应的呢,叫三次握手和四次挥手啊,这个呢,大家做一个了解其实就行。啊,这就行了啊好,这呢是我们关于整个这个网络通信协议这块的一个场景,然后下边具体的,诶TT网络编程这块呢,咱们是讲了有三道这个题目。哎,在我们下边这块。针对我们这个TP的。哎,这边有三道题,哎这三道题呢,大家下来呢,诶有时间的话呢,你就相应的写一下就行。哎,这个我就把它放到这儿了啊,然后这个udp的话呢,我们是写了相应的一个题目,诶大家呢,去通过我们这个udp呢,稍微的感受一下,哎,它是这样的一个场景,哎,不需要呢,提前建立连接了。那直接呢,我们先呢,就执行这个叫发送端,发现呢也不会报错。啊,技术端呢,根本就没开,没开就没开了,反正他发完了是吧,他也不管他对方在不在啊OK,然后这块呢,我们还使用一下这个叫数据报是吧,也体会了一下,行这块呢,我们就是简单的啊。
52:07
相当于呢,大家去理解,然后呢,这个AUDP的一个。哎,数据传输的体会就行啊。嗯,行,这个下来的话呢,大家也不用刻意的去练了啊,然后这个URL的话呢,后边呢,比如我们在这个web当中呢,其实就要通过这个浏览器啊,我们去访问这个后台的服务器了,然后到时候我们后台这块呢。哎,这个我们提到这个Java这个后台,后台的话呢,我们需要呢,将咱们写好的,哎这个Java程序,诶把它呢叫诶部署在。诶,咱们比如说呢,叫诶汤姆盖的这个服务器中,然后呢,我们需要呢,去启动这个汤姆盖的服务器。啊,这个呢,就相当于是对应的我们叫服务端了。啊OK,这个呢,是相当于我们这个后台了,然后对于这个我们说呢,前台。那这呢,就出现这样一个交互了啊,现在的话呢,我们就可以呢,使用叫呃浏览器,然后呢,诶进行啊访问。
53:04
好,那这时候访问的时候呢,我们前台访问具体后台你是访问这个服务器里边,我有好多的这个程序了,或者叫好多的项目了,你具体访问的是哪一个项目下的哪一个资源啊啊这时候我们就需要呢,使用ul。诶,URL是吧,那这个我们相当于是一个链接的一个地址了,这呢就提到了我们这个UR的一个场景,好,那这里边儿我们就提到了,说什么是这个UR啊OK。嗯,这个呢,就是我们后边要讲的主要的这个内容了啊这块呢,涉及到前端,既然用浏览器访问,诶我们需要呢,前端相应的一些相关的技术了,诶最基本的这个三个技术的话呢,就提到了叫aaml是吧。哎,加上我们这个叫CSS,然后加上我们这个叫javascript是吧。诶,这样的三个技术OK啊,然后呢,具体呢,我们在开发当中,他们属于最基本的三个技术了,实际的时候呢,我们还会在前端当中使用相关的一些框架。
54:01
啊,像我们提到比如说view框架。是吧,还有呢,这个叫呃这样的框架,这个目前算国内呢,用的比较多一些的啊,现在这个呃印度呢,用的比较多的是那个安哥拉GS。啊,不同的国家呢,这个情况呢,可能还稍有不同啊,VIVO的话呢,目前在国内呢,应该是一家独大啊,相对来说呢,也不是特别的难,OK啊,这是前端的相应的几个框架。好,然后呢,后台这块的话呢,到时候我们就诶这个搭建一下他们开的服务器,我们写Java程序就行了。嗯,OK,这是我们说的这个点,然后呢,回到刚才说到这儿啊,前台呢,跟后台在交互的时候呢,我们这边写具体的这个UR了。啊,这里边儿呢,我们其实呢,首先要了解的就是这个ul它的一个,嗯,首先它的一个代表的是什么是吧,它的一个呃,作用啊,就是定位。互联网上。诶,某一资源的地址。诶OK,这个呢,就相当它的一个作用,然后另外呢,就是这个UR它的一个格式啊,这个大家也基本上去熟悉一下,诶咱们在这个笔记里边呢,也写了是吧。
55:06
把它打开一下。哎,对呢,就我们这样一个场景,哎,把它粘过来啊。嗯,这个写成一个直接粘过来吧。哎,这样就行好,然后这块呢,我们熟悉一下它这个格式,然后在这个格式里边呢,我们就看到了这有一个叫HTTP,它呢决定我们这个应用层的一个协议了,叫超文本传输协议,然后通过这样一个协议呢,我们实现前台跟后台的一个交互,到时候我们还会再讲一讲,说这个协议里边具体的一些细节是什么,包括呢,我们提到了说这个,诶比如说通过浏览器呢,访问这个后台,然后后台这块给我们反馈这个资源的时候呢,诶然后这块呢,报了个404,这呢就属于一个响应码,它这个响应码呢,就在我们这个HTP这个协议里边呢,做了一定的规范。正常来讲的话呢,我们反馈的其实都是200了,就是表示呢,就是响应数据呢,成功了,那那除了这个200404之外呢,还有其他的一些相关的响应码。OK啊,到时候我们再去说这个事情。
56:00
然后在咱们这个基础这个阶段的话呢,咱们也是就稍微的熟悉一下就可以了,然后呢,你要说呃,在我们这个位置呢,就跟面向对象这块呢去挂钩,呃,前面呢,我们说整个呢,咱们第三个阶段讲的这个内容啊,其实都是基于面向对象对象之后的这个展开来说的哈,然后呢,在面向对象的时候呢,提到了叫万事万物皆对象,我们在后续的这个章节当中好多的地方呢,其实都提这样的一句话了。啊,你比如说我们在讲异常的时候,说在Java里边呢,说一个异常也是以一个对象的方式呢来呈现的啊,不同类的相应的对象就体现了是不同的异常了,诶然后呢,我们这里边呢,提到了,你比如说讲到这个file的时候,哎,我们相应的一个,诶物理磁盘上的文件,这呢是作为我们file类的一个对象呢出现的。然后这呢,我们就提到了说一个网络中的一个资源地址,那我们体现为是一个UR,一个IP地址,体现为是一个it dress类的对象啊等等,包括呢,我们前面还在讲泛型的时候呢,提到过这个叫呃,OM的这个思想。啊,这个呢,就需要我们跟数据库在交互的时候是吧,然后这块呢,数据库当中的一条记录在我们这儿呢,其实也是一个对象,所以呢,像这些呢,大家都可以作为这样的一个,诶这个问到了说万事万物皆对象这样一道题目的时候,说你怎么理解的,刚才我说的这些都是一些素材,诶大家呢,都可以去说啊,OK。
57:18
好,然后具体呢,针对咱们这个,呃,U2。哎,使用这个URL是吧。哎,我们说呢,实现数据的一个下载。啊,这块呢,诶我不是演示一下,咱们把这个数据呢,放在这个他们CA服务器里边这个图片,然后我们演示一下这个数据的一个下载,对应的就是这个代码,这个呢,大家也是稍微的了解一下就行啊下来呢不写也没关系啊。OK,就整个呢,这一章咱们对大家要求呢,其实都不算高。呃,这个问题这块呢,也就两个哈,第一个TP协议和udp协议这个区别,刚才呢,我们在。哎,讲到这儿的时候呢,这不又提了一下是吧,所以这个呢,我们就略掉了啊。然后下面呢,说一下这个TP协议的这个三次握手和四次挥手,这个呢,其实遇到的概率呢,也是比较低一些的。
58:05
啊,那如果要是真遇到这块呢,你可能要说一下这个你就翻回来提一下我们上面的讲的这个三次握手和这个四次挥手啊,这呢其实就是一些具体豹纹了,这个豹文的一个简单的解释呢,我下边其实也有写啊,这个大家可以看看,然后按照自己的语言呢,稍微的解释一下就可以了。OK啊行,所以这块呢,我们就就略了,所以这个的问题呢,也不用刻意的去准备太多,相当于整个咱们这个Java的内容里边呢,它算是比例比较小的一个内容啊,OK。行,那这儿呢,就是咱们这一章的一个复习啊,这一章呢,对大家整个的要求呢,不算太高,OK。
我来说两句