00:00
好同学们,那开始咱们今天这个课程,那今天我们要讲的内容呢,主要是两大块儿,一大块呢,就给大家讲一下,诶第一大块呢,就给大家讲一下我们的这个,呃,高浪里面的TCP编程,那TCP实际实际上是属于网络这个范畴的,就网络编程。第第一块第二块呢,我们会讲一下这个RA啊RA,那这两块呢,有可能是讲TCP,讲到中间的时候,我会切过来讲red,为什么呢?因为我们讲TCB编程呢,会写一个非常经典的案例,这个案例呢,几乎是呃,学这个学这个go编程或者C加加编程的都喜学这个网络编程的啊呃都喜欢写的一个就是聊天的一个程序。啊,这个这个程序要想要想写很要想写复杂可以说可以说是非常非常复杂,本质上来讲,QQ它就是一个聊天程序,对吧,M'程序要把它写的功能很强大,它实际上是要要想怎么扩展都有很多内容。
01:05
它是一个很经典的案例啊,几乎讲TCB编程呢,都喜欢去讲这个东西,我们也经简这个案例,因为他比较综合,他可以把你所有的知识点全部给你搞起来,到时间呢,我们写的时候呢,诶就把这个,呃,这个网络就是我们这个聊天呢,用TCP来实现,同时呢,用red数据库啊,这样子就呃比较好啊,效果会比较好,那我们先来看TCP这个内容啊,好,先板述一下。那么我们这个叫TCP编程。先给他一个标题。那首先我们来看看,既然讲的是TCP编程,我们必须要对TCP有一个基本的认识,它到底是什么对不对?诶这个呢要给大家聊一聊,首先还是老规矩,我们看两个实际的应用,那首先同学们看到在我们的幻灯片里边呢,有一个QQ啊啊,但是迅雷我没写,比如说你看到QQ迅雷或者百度网盘的客户端,你会看到这样的东西。
02:09
同时呢,你在实际工作中呢,你会看到有些网站对吧。那同学们看到大家想一个问题,假设你这有个QQ客户端A。你这有个QQ币客户端B,那么为什么你在这个A地方写了一个hello,然后呢,对方就可以收到。各位,其实大家应该思考这个问题,你看你经常玩微信,你玩这个QQ,那么为什么你说了一句话,或者你发了封图,发了一件,发了一个图片,呃,你发了过后对方,对方为什么就收到了呢?那作为一个程序员应该思考这个问题,首先告诉大家,绝对不是这样过来的啊。可能有些同学会认为,A发一个东西给了BB,发了一个东西给了AB,那这个就不叫网络编程,这个叫。对讲机啊,这个地方对讲机直接过来了,他这个地方呢,一般我们会有一种服务器,就是在这个公网上会有个服务器,数据会怎么跑呢?他是先把数据发到了这边,然后这边呢给你一个中转。
03:13
啊给你的中转,但中转的时候呢,方式很多,有有可能是就是我读完了过后,把这个东西放到数据库里面去,然后呢,你到数据库去取,还有一种可能性就是大家在这里建立建立一个综合的一个so,就不断就在内存里边,我直接不不落盘,直接就给你传过去,这个呢实时性就更强。当然难度也更大啊,难度就更大,好它大致就这么一个,那么在这个使用过程中呢,我们就会用到网络编程,好这个就叫叫网络编程,这个呢,我们把它叫做这种网络编程呢,我们一般把它叫做CS的结构。那除此之外呢,我们还有一种结构就是BS结构,其实BS结构呢,它也是属于网络编程的一个范畴。
04:03
因为它的底层就是你之所以可以看到这个网站啊,看到这些图片,看到这个文字,其实底层呢,仍然是靠我们TC pip这个协议来支撑的,只是他在上面做了一个包装,它变成了一个叫HTB协议,好,这是它的一个基本的介绍啊,好,这个案例,这个实际需求,我们先说到这儿,那么我们来看看。这个网络编程的基本介绍。勾当的主要设计目标之一就是面向大规模的后端这个服务器程序,网络通讯这一块是服务服务器端的程序必不可少,也是至关重要的一个部分,所以说这块呢,学习起来第一个很有趣,第二个呢有一点难,坦白的说有一点难,稍微不注意啊。稍微不注意就就很容易卡,因为你突然会发现你在写代码的时候,你会考虑两边,就你一边要写客户端,一边还要写服务器端,你还要考虑服务器端和客户端之间的通讯,你还得考虑这个服务器端要分发数据到利用别的服务器,呃,别的客户端,所以它的它的思思维方式呢就变了一下。
05:09
多元化了啊,多元化了,那么网络编程呢,主要有两大块,一个呢,就是刚才说的TCP sock编程,Sock编程,那为什么这个sock多了一个sock呢?这个sock呀,简单称之为套接字啊,套接字它是套节字来的是网络编程的一个主流,之所以要这个叫TCP sock编程呢?其根本的原因它底层用的是TC pip协议。这下又蒙圈了,可能有同学说,老师,TC bid协议是什么东西呢?我都不知道嘞,同学们,在我们这个网络世界里,任何一个电脑,就是你的程序,离开TC pip根本跑不了,比如说我们每台电脑都有TC pip这个东西,大同学们可以看看,打开我们的这个,呃,打开一个网络啊,你看我给同学们看一下。
06:04
打开网络,我们每台电脑上都装的有这个协议。我给大家看一下吧,比如说我看一个这个本地连接点属性。点属性过后呢,你会发现哦,你看这里。有TCP这个协议了啊,这个是IPV4是呃,IPV4的这种这种方式的IP,这个是IPV6的地址,那么他们呢,都是有这个协议,看TCP如果你把这个删掉啊,如果你把这个删掉的话,你看删都不让你删,就因为它是必装的。啊,如果你真的把它卸掉了,我告诉你,你的电脑肯定是没法进行网络通讯的,肯定你你你肯定跑不起来啊,你肯定跑不起来,所以这个呢是很重要的啊,很重要的好,这是TCP,那么还有一个呢,就是BS结构的呢,它是属于HTTP这个编程的一个范畴。那么HTTP是个什么东西呢?是网,它是它也是一种协议啊,它也是一种协议,叫HTTP这个协议它是建立在TCP这个基础之上的。
07:10
比如说我们使用浏览器去访问这个服务器时,使用的就是HTP协议,那么它的底层呢?仍然是TCP。So来实现的。好了,那有些同学老师这个TC pip有没有专门的书给我们推荐一下呢?因为如果将来同学们要在这个服务器,尤其是咱们将来unnuxx Linux这块去做服务器啊,你对你对I TC bib协议不了解,其实是。很很很不好的事,那么我这里有三本书推荐给大家,三本我们称之为TC pip的圣经,哪三本书呢?大家看一下。哎,我给大家分享一下啊呃,在资料里边,我这里给大家准备了一个叫TCDP的一详解详解,那么我给他解压一下,大家先简单弄一这几本书呢,是学习网络的,想深入研究网络的,比如说你想去了解网络底层到底是怎么回事,必看的书。
08:10
哪三本,它一共有三卷,一共有三卷,第一卷叫协议啊,专门讲协议的,第二卷叫实现,第二卷叫实现,第三卷叫事物啊,那第一卷呢,是基础篇,大家可以看到他是电子版的,还是很不错的,这个作者很很有传奇色彩啊,啊叫斯蒂文这个人反正很厉害一个人啊,很厉害这个人,然后呢,这边呢,他这本书还是非常经典的,他把这个讲的很清楚,比如说分层是什么,TCVIP的分层,互联网的地址,域名封装,分用端口号等等等等,都讲的很清楚。那如果说呃,同学们将来在这个想想在这个网络这一块了解更透啊,可以去看看这本书还是很不错的,个人感觉还是很不错啊,OK,这是它的一个这个书的一个推荐啊,还下面还有实实现是怎么实现的,对不对,还有就是看这个失误还是非常不错。
09:09
比如说有些同学说老师我我以前是做那个专门做Linux的维护的,按理说就应该看这本书。那按理说应该看这本书,咱们以前不是有个做维护维护的同学嘛,他应该是要看这种书的,尤其是像像这个华为的啊,华为我知道那种专门搞这个,搞这个硬件的,搞硬件的必须看这个书,不然的话搞不懂这里面是怎么回事啊。好,他对网络底层讲的非常到位的,好了,那这个我们先说到这儿,那么先把它板述一下啊,第一个我们看了两个实际应用啊,两个实际应用,第一个呢,我们说QQ,第二个呢是网站对不对,他们都是属于。啊,都是属于什么呢?网络编程的一个范畴。哎,比如说刚才看到这个东西。QQ还有我们看到网站诶,它都属于网络编程的范畴,好我把这个图呢,给各位朋友发过来啊,好的。
10:02
这有两个图。放到这儿,一目了然,对。然后呢,我们接着又说了一下这个网络编程的一个基本介绍啊,就是它的网络编程呢,有两大块儿。对,有两大块儿,我们看一下。好,这是我们的标题二,两大块,我们看一下,第一大块呢,就是刚才我们所说的是TCP编程,一个呢,叫这个HTTP编程这两大块儿,那么这个这个HTP携程HTTP编程呢,我们这块要说一下,它属于go web的一个范畴。啊,所以说我这重点讲的是TCP编程啊,我重点讲TC,当然你你学完这个TCP编程过后呢,你学这个,你你会对这个HTDP就是外部编程会有一个更深入认识,其实它这里面只是变了一个一样的东西,它就变了一个,就是发送的这个协议发生变化了。你原先发的这个协议呢,是你自定义的协议,等到你学这个HTTP编程的时候呢,它发生的协议就是一种标准协议,就什么协议呢,就是大家都遵守的一种这个文超文本传输协议啊,超传输它底层是一样的啊,底层是一样的,所以说TCP还是一个基础。
11:17
还是个基础,OK,我把它放在这里啊各位同学,那这地方我们假设的有两种对不对,有两种,第一种呢,我们把它叫做这个编程。TCP编程第二种呢,我们把它叫做HTTP编程啊,它也属于BS结构的,好,这是基本介绍,基基本介绍。呃,那么我们先说到这儿。
我来说两句