00:00
我们看一下下边的内容,端口说完了过后呢,我们来说一下端口的使用事注意事项,那注意事项呢,有第一个啊,就是计算机,将来你们在做服务器的时候,一定记住韩老师要一句话,尤其是做服务器尽量少开端口,那如果说你有一天你发现有一个端口莫名其妙的打开了。就你以前没有启动端口,突然这个端口打开了,那我告诉你这就有风险,原则上我们以前做服务器的时候,我们那个老大就跟我们说是吧,我们最早的时候那个不是第一任新浪CTO吗?老头很厉害,包括后面我们在那个上家公司,上家最早的那那个公司对吧,我就名字就不说了,做培训的,然后呢,去了过后,呃,我们那边也有那个技术比较牛的。我就我我们就很清楚的知道,我们装操作系统的时候都都要装纯净版的,不装插件,装插件版的很危险啊,那个时候呢,就说端口只要是自己不用的通通关闭。你打多打开一个端口,就多一份风险。啊,假如有一天突然有一个端口莫名其妙的在线听,那就要小心了,可能可能是有一个木马在那在那搞坏事啊,可能搞搞坏事,所以这个尽量少开。第二个呢,一个端口只能被一个程序监听,第三个net-an可以查看本机有哪些端口在监听,比如说我们想知道哪些端口在监听的话呢,可以这样子写。
01:20
B啊,这样子就把你所有监听端口打开了,看到了,那你看怎么看呢?这边看到只要你前面有个listen就这个东西啊,就你可以看到这个listen后面这个端口就看,这说明我目前有个135的端口正在监听。说明我有43的正在监听,一看是哪个程序呢,我这个虚拟机正在监听。就虚拟的vmware,还有呢,大家看到这个地方有个445的啊,无法获取所有所有权信息,还有像这个你看这个24564飞秋,看到我是个飞秋,就也就也就说我这个飞秋,其实他在监听我的242425这个端口,为什么呢?因为有可能是你要给我发东西,我要给你发东西,肯定大家都是要通过这个端口来来走的,所以你看这个端口。
02:06
包括这个阿里阿里巴巴看到没看到阿里巴巴你看偷偷的叫我接听666691啊,也不知道在干什么事。所以说你如果你打开一些东西,比如说有一段时间有有个消息嘛,说有一个有个程序是迅雷还是谁,我忘了名字了,就偷偷的摘取这个,把这个客户的这个这个信息偷偷的往上传,很简单,他只要在后面启动起来,启动起来他他只要端口只要敢监听。他通过这个网络找到你,他有些是通过中转找到你,把你东西全部给你取走,甚至他有更简单的方式是我直接这有个木马小程序。这个木马小程序干什么事呢?我们以前有学生做过这个东西啊,那那小子还挺。哎,还挺厉害的,他写一个木马程序,只要中,中了之后,他给你发了一个美女图片,你知道吗?看起来是图片,其实是个程序啊,他还挺漂亮一点,啪给你装进去了,一装进过后,这个木马还很顽固,他一旦起来过后,这个木马干什么事呢?他就偷偷的扫描你的这个,扫描你的这个电脑,电脑的时候,它它它是有关键字的,比如说密码。
03:07
账号。隐私美女,他扫这个文件扫到过,我把这个文件怎么样呢?蹭的一下上到他,他这边有个遥远的公网服务器,公网服务器他就监听,他把这个内容蹭蹭的往里面传,传过来,把公网服务器蹭蹭蹭的传到他的电脑上,他每天每天他跟我说,韩老师,我我晚上一打开里面好多好东西啊,就坏的很惊人啊。说你们说的为什么,为什么不要轻易的去点美女图片,你知道吗?就有些图片你看下一点他包装了一下,他做一个包装,就是很很简单一个包装。一下,然后一点啪你装上,装上它是随随着你的这个电脑启动而启动,而且有些情况下,三三像360,它不认为这是这是一个,它不不一定认为他是个木马,但有些程序他会直接给你封了,他发现有个端口莫名其妙起来,而且这个这个程序他从来没见过,他直接给你封了,像像这些程序,像飞秋阿里巴巴,像这个VRL像360,其实已经把它加在了可信可信用的这个这个程度了。
04:06
知道吧,还有程序就就更厉害,所以如果你是一个程序,他不认识的,一般也会直接给你杀掉,你看为什么这个阿里巴巴监听是6609,这个360说不是木马,因为他知道这个程序是OK的,他怎么去验证这个程序正常的呢?他们这个杀毒软件和这个像阿里巴巴和和这些知名的地方,他们是有一个协议的。他们是他们有标识,就标识我是一个合法身份,身份的那里面还是很复杂,就有为什么像360那边他一个安全工程师的那个薪资很高的,一般来说专门做这个安全的,就做到极极致做网络安全的人薪水一般来说不会不会低于60万。不会低于60万,他专门做安全啊,为什么?你想一想,这个安全多重要。你如如果你一个如果,如果做做安全的一个公司,没有几个拿的拿的起来的人,根本不行,阿里巴巴你知道支付宝有多少,他的安全部门有多少人吗?
05:01
就那个支付宝,他他有一个部门,最隐秘的部门叫做叫做叫做什么什么部队呀,我都忘了啊,反正就是类似于安挺猛的一个叫黑豹什么部队,就专门干这个事儿,每天都在研究有没有坏人来搞澳门那一旦发现有问题,他马上就启动,那个全是一帮一帮高手啊,那些人干什么呢?所他们还专门在找网上有没有找知名黑客找到过,直接来吧,我给你钱对吧,你你别去干坏事了,你当你当这个网络界的雷锋英雄,他身边这些人很厉害啊。但是这个呢,不是我们研究范围,像这种搞安全的,他对他对底层要求很高啊,我我以前有个同学,我们大学有个同学,那小时候好久没见了人在飞机上聊天,诶说你好久没见,毕业了上哪去了,我现在到一个安全公司,我在哪呢?他说不能告诉你啊,我不告诉我算了,我懒得搭理你是吧,意思就说很保密很保密,比如要么是银行的,要么像这阿里的,像微信的支付的传手高手在那,不然的话,你想想,一旦把你这个支付支付宝给突破了,那你不得了啊,剩下全全部给你转走。
06:03
那可不是开玩笑的,你想想你,你的现在一个人类的人的一个财富是什么东西,不就是一个数字吗?比如班长起来过后,突然发现自己的账号上多了五个零是吧,马上就不干了,但是是小数点以后的没有好,这个呢,大家可以可以简单了解一下啊,以后有机会同学们以后如果将来想做安全,其实也是要动,有些同学是喜欢看好端口的,注意事项我们就先来给他扯到底啊,以后有机会同学们可以再去聊聊这方面的,这东西很有意思。好,这是端口的一个注意事项,我们就说到这里吧,简单的聊了一下,在我这说的比较简单。好,它的这个四点啊,基本的东西要注意,尽量注意啊,以后大家做服务器注意几个细节,第一个密码一定要做的复杂一点,第二个呢,呃,就是端口要尽量少开,第三个你的系统一定要纯净版的,不要比如说将来你将来装一个Windows。或者是那个,呃,从网上下载一个像这个Linux unx1定要保证它是纯净版的。
07:04
一定要保证成绩满,不然的话给你来个差价,你就完蛋了啊,你就完蛋啊,所以说你看好多同学毕业过后,经常有时候微信跟我聊,说韩老师,我这怎么怎么启动过来老老出问题呢,一般都是一些问题。好,那我接着往下看吧,同学们,下面呢,就是为了收割方便呢,我们这个TCP sock编程,我们就简称sock编程啊,So编程,那么go浪的SOSO中的客户端和往服务器的分布应该是这样子的,就是说将来我们这有一个服务器端,这个服务器端会跑一个程序,然后呢,这边是客户端,客户端可以有多个,我都可以跟这个服器端进行一个连接,连接过后呢,这个地方这个线就代表一个什么呢?这个线我们可以认为就代表一个连接,这个连接是可以不关闭的,只要你连上了过后,它理论上是不会关闭,什么时候关闭呢?第一个你主动关闭这条线,第二个就是超时,就一直没有数据,它也会在一定时间给你关闭,但我们TCP论上是不关的啊,它是个长连接,这个跟HTP协议的连接不一样,HTP这个协议呢,它是一般是连上过后就把数据发就关了,但是我们TCP的连接是长连接,这个叫长连接啊,啊这个也是长连接,长连接,那么一旦连接。
08:18
关好了过后呢,我们就可以通过这个,就把它理解成是一个管道,就好像一根管子一样,我们可以从这输数据,一般是用right,这边会有right,这边我们会通过一个连接,拿到这个连接过后点right。这地方我可以把数据我可以写叉叉叉,然后这条这个指令写过后呢,这边就可以去读取每个链接,它是能够区分开来的啊是张三给我发的,还是李四发的客户端它是可以区分的,为什么怎么区分的呢?就是靠刚才老师发的这个图,比如说这个是客户端A给MYSQL发的,那么假设你有客户端B呢,好,他们之间就是靠这个他们之间本身的一个区分,就说靠那个TCP,诶这个地方。
09:03
为什么降不下来了?好,那上不下来了,不知道为什么啊,待会就说这边也是一样的啊好,这个呢,大家有一个基本的认识,好现在呢,我们准备写代码了。好,有了这些基本认识过后呢,我们写代码大家可能认识的更清晰一点来,标题二,好老师呢,给大家画了一个图,对不对,画了一个什么图呢?就是它的一个简单的网络分布图。啊,简单的网络分布图,各位朋友诶,为什么选不中,好简单的网络分布图。好,这个图呢,我们就先给各位朋友放在笔记里边去啊,OK。有一读一写,待会很有意思啊,我们写代码你会觉得很有意思,他可以写很复杂的东西。比如说你们现在比较喜欢的那个叫微软小兵,对吧,其实就是可以自动我们写一点东西,可以让他人工智能化,那自己在网上去找这个关键字,其实这把这把这些加进去特别好玩啊,OK,然后这个写完过后呢,我们接着往下看,下一个就是TCPTCPSO,编程的一个快速入门,现在我们就写东西了啊,写东西了。
10:09
那么TCPSO编程呢,我们首先要这样子看啊,服务器端的处理流程,还有客户端的处理流程,我们我们待会做这样一个东西,做什么东西呢?就是服务器端和客户端可以互相的发送信息。发送信息最后出的效果,我希望出这样一个效果,我我先出一个简单的啊,大家看我们要出的这个效果是这样子的。啊,我先把这个作业给他拿出来,我们最后要达到效果这样子。啊,注意。注意啊,待会呢,我们要实现这么一个效果啊,客户端发送信息给服务器端,客户端如果发送WHOU,服务器端回送我是小斌,你的性别,你猜猜看,你会什么,不会讲故事,你讲过吧,从前友善没了,当后呢,如果发生的不是这些呢,统一回复你说啥啊,然后他们之间的交流,当然这个客户端可有很多个,他可以写很多很多啊,可以写两个,三个,四个五个都可以,而且这个这个呢,我要求同学们将来做完了过后,他这一块内容可以进行自动学习,他可以自己学习。
11:20
怎么自己学习呢,这些数据就是客户端发送的东西和服务器端回收这个东西呢,咱们可以写一个。写一个小程序,然后呢,这些内容可以通过文件自动添加,就这个文件呢,我们只要把文件里面放一点这个它的对话,那么它的自动这个对话的信息就会增加,这个文件如果你写的再好,可以从网络去抓这种自动去更新这个文件,他就在自我学习啊,这个还是很有意思的,就很智能的一个小东西,好那么这是我们一个目标,先说这个好,那有了这个目标过后呢,咱们就来开始分析一下刚才老师说的这个服务器和客户器,客户端的一个开发流程。
12:01
好,来看一下。好,开发流程是这样子的啊,待会呢,服务器端和客户端它的大致的流程是这样子的,服务器端先监听端口,那这个端口呢,我们把它设置成比如说八个八吧,四个八,四个八,然后呢,接收客户端的TCP连接,建立客户端和服务器端的连接,这是动作,然后呢,创建一个GR,我们用GR来处理,为什么要GR处理呢?因为我们希望这个服务器能够处理多个客户端的请求,所以我用GR处理该连接请求。通常呢,客户端会发个连接,发送请求包,客户端这边怎么处理呢?建立服务器和客户端的连接,发送请求数据,接收服务器端返回的结果数据,关闭链接。但这个地方呢,可以循环的做,到时候我们这个发送的数据请求,我们希望通过通过通过这个终端输入。终端。好了,这是我的一个快速入门的一个简单描述,那下面呢,我们来看具体的一个实现。
13:03
好,这是我们的标题。二没问题,这是一个标题2OK,那服务器和它的一个处理流程呢?我们就简单的先说到这里,下面写代码同学啊,来第一个标题三对不对?标题标题三上哪去了?标题三好,我们的流程是第一步监听端口888。第二步接收客户端的请求,先理解第三个创立一个GR,我们一定是建这个GR去做,这是为什么我们要先学GR,再学网络编程对不对?好,这个是一个,还有客户端处理流程呢,大致相同,诶大致系第一步建立跟他的连接。建立跟他的连接,发送数据请求好,关闭连接。好,这是他大致请求我们来画一个简单的示意图,画一个示意图我们就要写东西了啊,简单的示意图。简单的示意图,程序示意图。我把这个东西一看一写,你们就知道程序稀度OK。
14:03
来吧,标题三好示意图呢,我这样做啊,待会呢,我们这样这样玩,首先我会开发一个服务器端。这个服务器端呢,呃,将来这个,呃,它的它的这个能做一些东西,就是我的服务器端,我取个名字叫serve点购。服务器起端注意听啊,那么这个名字呢,我们把它放大一点,太小了,看不清楚对不对。好,服务器呢,写个名字叫点go。好,这就12.go,那么这个服务器端它做什么事情呢?它要在一个端口上进行监听,比如说我们把它放在四个八这个端口上监听。但是我写代码888。八八监听,那至于至于谁来连接我不管好,注意他在8888端口上进行监听的时候呢,假设有一个客户端来了,比如说我这有个客户端叫A客户端。
15:01
这个A客户端呢,它有个IP地址啊,同学们这有个A客户端,比如说A客户端。这个A客户端的代码,客户端它的代码呢,我们姑且叫client c订购好,它呢发送了一个请求,他称了一下,发送了一个请求给我们。哎,看到他来了个请求,那当然他发这个请求呢,呃,一定是找到这个端口的,他一定找到一个端口发个请求,那么发一个请求呢,我。跟他之间建立了这个请求,也就是说这个线应该准确的讲,应该是这根线比较合理。就是大家可以互相通讯的,那就不是单向的了啊,那应该是这种线,就是他们之间呢,建立了一个相互通讯的一个管道啊啊就so就so好,我把它画粗一点,那也就是说他们一旦连接过呢,我这个客户端可以发东西给你,当然你这边可以回送数据给我,那么我们的数据呢,就在这个管道里面流动。流动好,当然A客户端可以做呢,B客户端也可以跟他交流。
16:05
好。闭口等。好,我们先把它做到题做题啊。好,这个地方也可以假设我们有两个,这有个B客户端,B客户端代码呢,跟他一样,它也可以去连接到这个端口去。好,那具体来说,它一旦连接,我们希望干什么呢?我们希望这个客户端起一个起两个不同的携程为他们服务,就是说你不能让服务器端一直在这儿为他服务,因为这样会阻塞,会阻塞,所以说这个服务器端呢,它有个能力。它在这个运行的过程中,假设假设我们服务器端是在这样运行的啊,这是它的一个主线程,你不能你不能让这个主线程死掉,你不能让它死掉啊,这是它的一个主线程,那么当我发现有一个A库那来的时候呢,我就在这个地方启动一个携程。
17:00
比如说这是一个我们的上下文P,好,这些大家应该听得懂了,因为我们昨天是讲过的,假设这是我们的一个上下文P。好在这里呢,我给他启动一个携程为他服务,也就是说这地方我噌的一下跑出来一个新的服务。好假这个服务呢,我们用这个小圈圈表示好,假设这个服务那在这里,诶我换一个别的颜色啊,换这个颜色,颜色我在这儿呢,给它开了一个斜程。我在这开了一个写真给他。好,这个携程干什么事儿呢?好给他过,其实到时间真正这个通讯的时候,他们真正连接肯定是还是连接到888,但是真正服务的时候呢,是通过他这两个携程来服务的。大家看这个理理理解就是说真正为我们进行通讯服务的时候,是我们通过这个端口拿到一个连接,但是真正写数据的时候,是这个携程在在他们之间交流,同样道理,同样道理,你这边可以有这个呢,那我这边也可以有。
18:08
那因为这个B客户端来了后呢,我可以给他开一个携程。好,当然是从这边支出去的。那这样子我就形成了一种什么呢?分支结构,就说你有多少个,我就可以开不同的一个给你服务,那这边呢,我们姑且叫做也是一个携程啊,就是肯定是个携程。这边呢,也是一个斜程。因为这样子我有什么好处呢?大家看这样的好处有点类似于这种感觉,什么感觉呢?就说现在有很多客户来找我付付清。你找我没关系,我我干什么,我接受我让一个服务携程为你服务,你们之间建立一种关系,但是还是要走这个端口啊,绝对不是这样走的啊,没有哪个老师敢这么说,说韩老师,我们能不能这样走。不是样子一个结构啊,因为你这样走就代表把这个端口就就跑就跟扔走了,端口仍然是在的,就到时间呢,我这有端口,你这有端口,他们之间就形成这么一个关系,这样的感觉是好像这样子,我们这个服务器是个前台服务,服务小姐是吧,来了过后张三找到这个前台吧啦叭说哎,我要找芒古,我要我这失败。
19:16
那么这个服务服务台的服务台的这个接待,接待员说,哦,我告诉你啊,你去101找某某,他为你工作,又来一个客户,又找到前台这位接待,接待人员说我要找这个张经理,我我要办个事情,那张经理怎么办呢?说啊没问题,我给你理去,说你找另外一个叫做102的房间,那面有个人等等着你呢,你给他付好,这样子我来多少个都无所谓,我全部给你开开携程,这样子他就是一个并发的一个东西了。这是它一个基本原理图,好,有了这个原理图过后呢,咱们就好办了,好有了这个原理图,咱们就可以开始写代码了,大家大致知道我要干什么事啊,一步一步来,先把这个示意图给同学们放到笔记里面去,现在呢,我们开始写东西。
20:04
开始写代码,OK?好的,这个先截一段视频,这个是叫做TCPSO,就是叫做聊,叫做TCPSO,它的一个分析示意图分析。
我来说两句