00:00
好,那么第13章呢,我们就讲完了,13章呢叫IO流啊,然后我们接着来看第14章叫网络编程,相当于呢,是在网络当中实现一个数据的传输啊,也就是网络当中的一个IO,第13章呢,咱们是在本地来实现数据的一个传输啊好,那这一章呢,我们主要讲这样的几个内容,第一个呢是网络编程概述,网络通信的一个要素概述,呃,通信要素1IP和端口号,通信要素二呢,网络协议,Ttp网络编程,Udp网络编程和UR编程,那么网络编程或者叫实现网络一个通信,这当然来说是非常重要的,哎,咱们呢讲Java web也好,或者我们一直提到说前端后台这个呢,都得实现这种通信啊,非常重要,但是呢,咱们在这个Java基础阶段的话呢,这一章我们先不用讲的特别后,咱们后边呢讲Java web,包括呢讲后台,呃讲后台之前呢,也会讲这个我们的前端啊,涉及到的HML啊,CSS啊,JS这样的一些技术。
01:00
啊,那儿呢,重点其实都是web啊,这个都是web,所以咱们这儿呢,在基础阶段,这个体现知识的一个完整性,哎,我们呢也要讲这样一章叫网络程,实际上呢,重心呢是放到我们外部阶段,那去讲网络编程啊,那OK,咱们按照这个顺序呢,先来看第一节关于网络编程的概述,那首先呢说Java呢,是Internet上的语言,它从语言级别上提供了对网络应用程序的支持,那程序员呢,很容易开发常见的网络应用程序。呃,这个Java呢,我们说也是借助于这个互联网的兴起啊,它才能够火起来,一开始呢,我们写一些Java的小程序啊,集升在我们的前端HM2这个代码当中啊,实现了一个运行啊,那么随着这个we部的一个崛起呢,Java语言呢就起来了啊,Java起来以后呢,后来呢,在主体上Java我们又是做这个后台的啊是这样。呃,我们很容易呢,使用Java给我们提供的相关API呢去开发啊这个后台的一些程序说呢,Java呢提供了网络类库,可以实现无痛的网络连接,无痛的网络连接是吧?嗯,这个呢,想说明的问题就是你你你你不用关注它的底层实现,只要呢直接调这些API就行,感觉呢就非常的顺滑是吧,比较无痛的啊啊当然这个词呢,大家生活中见的很多啊嗯,尤其呢,以前那句经典的说开始了吗?已经结束了是吧?啊对,每次看完这以后发现哇,这广告词谁想的想的太好了哈嗯,像大学里边这个这个经常也大概八卦哈,就看哎呀那个男生跟那女生晚上一块儿吃饭呢啊一块儿走路呢是吧?哎,后来一打听说开始了嘛啊其实已经结束了哈,当然还有其他的一些场景啊,大家都懂是吧?啊哎,说呢,我们这个实现网络连接的这些细节呢,被封装在我们。
02:53
Java本机的安装系统当中啊,由GVM呢进行控制,哎,并且呢,Java实现了一个叫跨平台的网络库,诶,成员呢面对的是一个统一的网络编程环境。
03:05
呃,这呢相当于是一个简单的概述啊,那我们呢,要实现呃,使用Java呢,实现网络通信,只需要呢,大家去关注一下这个网络提供,呃,这个Java给我们提供的API啊就可以了,行,那下边呢,首先提到一个概念叫做计算机网络。啊,计算机网络呢,也是作为计算机专业的一门基础课啊,对,这是一个必修课了啊,那如果你要是考计算机的研究生的话呢,这个呢,也是必考的一个科目,哎,计算机网络组成原理,操作系统,数据结构是吧?哎这样的几门课要考,那什么叫计算机网络这块呢,有一个稍微官方的一个解释,那这儿呢,我就把那个解释呢给粘过来了,说把分布在不同地理区域的计算机与专门的外部设备用通信线路连成一个规模大,功能强的网络系统,从而呢,使众多的计算机可以方便的故相传递信息,共享硬件、软件、数据信息等资源,啊应该呢,大家看这个文字呢,比较清晰啊,能够去理解就可以了啊,用不着呢,大家把这个背下来。
04:12
那一提到这个计算机网络,其实脑子脑子当中呢,其实可能会出现这样一个图景啊,就是呢,我们这个通过互联网的方式啊,光线也好,无线也好啊,整个呢,把全世界呢,各个节点呢都连起来,大家呢,可以进行资源的这个首先进行通信啊,啊同时呢,还可以进行资源的一个互通有无啊就这样啊,那现在呢,就是完全的信息化的社会啊,现在这个地球挺大的啊,但是呢,更多的诶,我们习惯说叫一个地球村,就像一个村子一样啊,大家的这个信息的传输速度是极快的。啊,就是回到几个世纪之前,你可能从来不会去想象一下,说你站在北京啊,你喊了一句,然后呢,地球对面的美国就能听到。就是想都不敢想啊,因为你也不能想象自己到底能喊多大声,他能听到是吧?呃,然后现在呢,有了这个信息化以后呢,诶拿一个微信哎,拿一个这个QQ啊,或者打个电话啊,这个很短的时间,几秒钟的时间啊,对方呢,就通了,你这边喊一嗓子,他那肯定能听见,而且呢,你还能看到他的这个图像是吧?啊甚至以后的话呢,你还能够闻到他喷的什么香水是吧?啊这个都是可以做到的啊。
05:21
啊,这呢,就是我们通过这个网络的方式,哎,把这个地球呢,整个联系在一起了,行,那么这个过程当中呢,我们提到了去进行数据的一个交换,哎交换呢,就是数据呢,实际上进行传输了,咱们在上一章当中呢,呃,讲的是数据在我们本地跟这个文件呢进行一个传输。啊,那现在的话呢,我们这个数据的传输呢,是需要在网络当中实现啊,那我们呢,就相当于啊,要实现网络编程。啊,非常容易理解,说网络编程的目的是什么?就是直接或间接的啊,通过网络协议与其他计算机实现数据交换,进行通信。
06:01
啊,就是咱们呢,作为成员,呃,这个进行这个网络编程,目的呢,就是为了进行数据的一个传输交换啊这样子啊。那么下边呢,就提到另外一个点,说我们目的呢是这个,那怎么做啊,有没有什么瓶颈啊,这里边儿提到了两个主要问题。说,要想实现网络编程,有两个主要的问题需要解决。第一个问题,如何准确的定位网络上的一台或多台主机啊,这个我们知道地球上你这个有太多的这个地方了啊,你到底是想跟谁通信,我得能够找到它,哎,那么在网络当中我想找到谁?实际上呢,咱们在这呢,就先形象点来说,就是一台主机是哪一台电脑,你到底想跟哪一台电脑进行通信?啊,这只是说第一个层面啊,那接着的话呢,我找到这台电脑以后,这个电脑呢,像咱们这个Windows操作系统,它是支持多进程的,我们同时可以有多个网络的应用程序打开,那你到底是跟这个主机上的哪一个应用进行一个数据的交换呀?啊这呢,还需要定位主机上特定的一个应用。
07:12
啊,或者叫特定的一个进程啊也可以啊,这儿呢,哎,你要能够确定下来,那我们就非常精确的啊,定位到某一个具体的进程了。啊,这是第一个情况啊,定位到它以后,还得要考虑第二个问题啊,我们如何进行可靠而高效的数据传输,哎,如何进行可靠而高效的数据传输,这是我们要解决的第二个问题。哎,解决第二个问题啊,那其实这两个问题呢,应该说也比较好理解,哎比较好理解,这呢是咱们进行网络的通信啊,咱们再举个例子,就是以前呢,没有网络之前,大家呢,都习惯了去写信。啊,就不知道大家有没有写过信啊,有写过的呀,啊就是应该啊漂流瓶啊,漂流瓶网上漂流瓶不算哈,这个以前我们上这个高中的时候,初中的时候还写信啊,那时候呢,感觉还现在来看的话,写信就纯粹是一种情调了,那时候写信,但是没招,只能是写信啊,电话呢,大家基本上也都还很少的啊,这个宿舍里边会有一个电话,一般那样啊,你像这个写信的话呢,没写过呢,顺便我跟你说一下怎么写信哈,哎,这个信封那肯定都见过啊,比如现在的话呢,我们想跟这个远方的一个朋友啊,这个写信说白了就是你俩也想实现这种信息的一个传递啊,那以前的话呢,我们没有这种网络,只能是写信的方式,那写信的话呢,呃,相当也是个通信了,我们怎么这个解决他对应的这个问题呢?其实第一个事儿也会有同样的问题啊,第一个你得知道他到底在哪个城市啊,如果他在上大学,你得知道是在。
08:50
哪个大学哪个专业啊,名字叫什么,哎,找到哪个学校哪个专业名字叫什么了,哪一届的是吧,基本上就相当于我们第一个问题呢,就搞定了。
09:02
哎,你知道就是他啊,我现在就是想给他写信啊,比如名字叫小芳是吧,哎,我想给他写信啊,然后的话呢,你想给他写信,那你得知道这个信的基本的这个格式是什么,信里边内容啊,你想怎么写都可以,虽然说以前小学时候都教过哈,什么一上来地什么的是吧?啊亲爱的谁谁谁啥的哈,哎这个呢,你里边写其实呢,并没有严格要求啊,但是你外边这个信封呢,是有严格要求的。啊,通常呢,我们说左上角是对方的邮边对吧?哎,右下角呢,是你的这块的邮边,哎中间呢有三条线,对这呢是你要寄到哪,哎寄到比如说这个呃,这个中国呃这个什么。广东省啊,深圳市啊,深圳大学啊,然后小方,呃,当然哪个专业是吧,小方收啊,这个呢,你写上谁谁收,然后这块呢,下边这个是写谁啊对,写你自己的这个地址,就是我要寄到这儿,哎,让这个人收,那万一要这个地儿找不到这个人呢,他还能给你寄回来,哎,这得写一下你你的一个地址啊,就这两个地址都得有啊,但是你要注意呢,你别写反了。
10:18
哎,写反的话呢,你今天寄出去,明天就收到了是吧?啊就回来了啊像这呢,就是一个基本的一个要求啊,就涉及到啊,我们怎么进行传输,怎么就写信呢?诶你得知道这个基本的格式,这个都写好以后啊,你这个要这个这个投到这个信箱里还不行,你得这个贴邮票,呃根据你这个距离,你看这个得贴多少钱的邮票啊就这样子,哎,这个都写好以后啊,你寄出去才有效。啊,这我们刚才提到了说写邮编啊,这第一行写什么,第二行写什么,这呢其实就一些具体的规则了,这个规则呢,其实就类似于我们的第二条啊,类似于第二条我们一会儿要提到的这个传输的协议啊,其实相当于也是一些规则啊,那通过呢,我们说写信这个事儿呢,哎,大家呢,回过来再看一下,我们在网络当中进行数据的一个通信,其实也需要解决这两个问题,跟刚才这呢,其实是对应的啊,是对应的。
11:14
成,那这呢,就是我们说的这两个问题,那接下来的话呢,针对于这两个问题我们来讲一下,哎,网络通信中的两个要素,第一个问题对应的要素就是IP和端口号,哎,第二个呢,对应的要素就叫网络通信协议,哎,来我们打开。啊,打开我们呢,先整体上来进行一个简单介绍啊呃,刚才呢,提到我们得如何定位网络上的一台或多台主机,首先呢,我们提到一个IP地址。这个IP地址就是网络当中唯一定位的一台主机。啊,像咱们教室里边大家用的都是局域网,那局域网的话呢,每个人都会有一个IP地址,是咱们局域网内的一个IP地址,比如说呢,这是咱们这个飞秋啊,每个人你看192.168.14.25,这个呢,就是他的这个IP地址啊,这是张磊的这个IP地址啊,每个人都会有一个独立的IP,相当于呢,就定位了我们教室当中的每一个人的一个主机,好这定位好这个了,下一个呢,叫做端口号。
12:18
这个端口号呢,就是定位这台主机上到底是哪一个应用程序,我们再进行这个通信,哎,这个端口号呢,是用来区分一个主机上的不同的应用程序的。啊,是这个意思啊,好,这呢就是我们解决了第一个问题,一会儿呢,我们详细的展开IP端口号,怎么在我们代码层面呢,去这个表示啊,第二个问题呢,就是说我们如何进行可靠而高效的数据传输啊这呢,我们就提到了一个叫啊遵循相关的规则,这个规则呢,我们就称为叫网络通信协议。啊,叫做网络通信协议啊,这个网络通信协议的话呢,它其实又比较复杂啊,我们在后边这块。
13:03
诶专门讲协议这块呢,我们诶这个简单又提到了啊,这个网络通信协议它呢有一定的约束,也就是协议了,然后对速率,传输代码,代码结构,传输的控制步骤,出错控制等制定了一些规则,啊这个协议里边呢,要具体讲它又非常复杂,那我们呢,就考虑使用叫分层的一个思想。把整个这个网络呢,我们分成了这样的几层。哎,就涉及到了这样的一个参考模型了,那比较理想化的呢,我们是提供了叫osi的这样的参考模型,将网络一共分成了七层。啊,分别对应的啊,应用层表示层,绘画层,传输层,网络层,数据链路层,物理层啊这呢一共是七层,那这七层呢,它画的有点太细了,在实施当中呢,有一定的困难。哎,我们说呀,实际落地层面,咱们执行的呢,或者使用的呢,都是TC pip的这样的一个参考模型,将网络呢,划分成了四层。
14:05
哎,这四层我们稍微关注一下啊,分别呢,是应用层,传输层,网络层,哎,物理加数据链路层。啊,这是大家呢,如果学过计算机网络这样一门课的话呢,里边都会讲到这样的一些啊,每一层啊,相应的一些这个规则了啊,那么对应的这个层上的话呢,我们有相应的一些协议。啊,HTTP协议,超文本传输协议啊,FTP协议啊,远程传输协议啊,远程访问协议啊等等啊传输层的话呢,哎,TCPUDP进行数据传输的话呢,两个主要的协议,哎网络层啊叫IP协议等等等等啊具体的每一个协议我们就不展开去说了,哎大家呢,如果想了解呢,我下边呢附了一个这样的一个。这个这个说明啊,你可以看一看,简单了解一下就行了。好,这呢,我们就相当于是,哎,如何呢,进行可靠而高效的数据传输呢,我们去规范网络传输当中的规则,这个规则呢,体现为就是网络通信协议。
15:10
啊,通信协议呢,就是我们刚才提到的这样一个事情,好,这呢我们了解一下啊,然后这个协议当中,我们提到的这个层数呢,我们说到上一层和下一层之间是可以进行数据传输的,哎,那这儿呢,我列举了一个数据传输的一个例子,哎,数据传输的一个例子,比如说我们在这一端,哎,我们把这个数据呢,啊进行一个封装啊进行一个传输,那这里边呢,可以理解成这个过程呢,叫数据的一个封装过程,这呢是我们核心的这个数据啊,需要进行一个封装啊,一层一层这样封装,再通过这个物理层的话呢,再传输出去,哎物理层呢,在一层一层的给它拆封啊,最后呢,展现出来我们需要的这个数据。哎,大家呢,把这个过程就可以想象成是一个啊,你买了一个杯子,比如说这个卖家啊,这个杯子啊是核心的数据,卖家呢,呃,现在给你打包杯子容易碎啊,先给你放点这个塑料是吧,包起来,然后拿个盒子再包一下,中间再垫点泡沫,整个这个过程呢,都理解成是一个封装的过程,那接着的话呢,通过这个快递啊,给你邮递过来,你这儿呢,再给它一点点拆开啊,一开始这边好多层哈,诶拆到最后就是这样一个杯子。
16:21
叫数据拆分的一个过程。成,那这样的话呢,大家对我们刚才这样一个描述啊,有个大体的了解啊,要想实现网络通信必须要啊解决两个问题,两个问题对应的要素啊,就分别是我们的,哎,这两块这个信息。啊,先把这个点的话呢,需要大家落地明确一下,我们把这个呢写出来啊。第二张,马意。哎,这个呢,我就先写成这个叫ane,哎,Address这个呢,一会我们说这个到底是什么意思啊,哎这呢,我们提到了第一个点。
17:03
哎,第一个点呢,就是要想进行网络通信,咱们需要解决的两个问题是什么?诶把这个呢,我们拿过来CTRLC。那这是第一个是。好,这是第一个问题,然后第二个问题,针对呢,我们提出来这两个问题,哎,我们呢,提到了叫网络编程中的两个要素。哎,两个要素啊,那么第一个要素就对应着第一个问题。第一对应叫问题一啊,我们呢,相当于是提供具体的IP和端口号啊,这是第一个啊,然后第二个呢,说对应着问题二。哎,对应问题二呢,我们去诶提供啊叫网络通信协议,哎这个网络通讯协议这里边我们就提到了,哎这个真正落地实施当中,咱们用到的这种协议叫TC pip的这个参考模型啊这个参考模型呢,将我们网络哎分成了这个四层是吧,分别对应的叫应用层,哎传输层,网络层,哎网络层,然后呢,物理加数据链路层。
18:33
行,那这个呢,大家了解就行啊,然后每一层上呢,咱们有具体些具体的一些相关的协议了啊,这是我们说的第一个事情啊,关于网络编程的一个概述。
我来说两句