玩游戏的小伙伴应该知道单机游戏、端游、页游之分。
端游:比如英雄联盟这些,我们若是要玩LOL,得下一个客户端才能玩。
页游:贪玩蓝月…直接打开浏览器就能玩,不用客户端。
一、软件架构 上面两种游戏就涉及到2种软件架构:
1.C/S架构
- C:Client,客户端的意思;
- S:Server,服务端的意思。
- C/S架构也就是指客户端和服务器结构。
端游,就是典型的C/S架构,常见的还有我们使用的各种应用软件。
优点:效果好,速度快(端游相比较页游而言)
缺点:更新慢,并且用户一般很反感客户端更新,很多客户端用户宁愿用很老的版本,也不愿意更新。
2.B/S架构
- B:Browser,浏览器的意思;
- S:Server,服务端的意思。
- B/S架构也就是指浏览器和服务器结构。
页游,就是典型的B/S架构,常见的还有淘宝网站这种,当然淘宝也有C/S架构(淘宝App)。
优点:效果差,速度慢(页游相比较端游而言)
缺点:更新快,浏览器一刷就更新了。
3.未来趋势
理论上说B/S架构要更加地厉害,会是将来的一个趋势。
怎么说呢?
就比如12306,可能一年也就用个一两回,还得专门去下一个客户端就很烦,只用浏览器就方便的多。
当初小程序出来时那么的火也是这么个原因,当然事实反响并没有预想中的那么大。
所以B/S架构趋势还比较遥远,技术上还需要一定时间来突破。
对于我们学Java的来说,自然是与服务端打交道了,其中主要接触的是B/S架构
说完了软件架构,那什么叫网络呢?
网络本质上是指多台计算机之间的数据交换。
而网络编程,就是实现多台计算机之间的数据交换。
其中网络三要素:IP地址、端口和协议
二、网络三要素之协议
什么叫协议?
用一个例子来理解,现在国际上一个日本人和一个德国人语言不通,它们用什么语言交流?用英语。
英语此时就是一种协议,国际通用语言。
所以在网络里面,协议是定义的通信规则,没有协议的话就像日本人在说日语,德国人说德语根本就没法交流。
其中应用最广泛的是TCP协议:
1.TCP协议
①TCP称为传输控制协议。
全称为:Transmission Control Protocol
②TCP协议是有连接的通信协议。
也就是在传输数据前先在发送端和接收端建立逻辑连接, 然后再传输数据。
③数据如何传输?三次握手:
- 客户端向服务端发起请求
- 服务端响应客户端
- 客户端再次发起请求,发送确认信息
其实这个概念特好理解。这就好比我们打电话:
- 我对你说:喂,你听的到嘛?
- 你对我说:我听的到,你听的到嘛?
- 我对你说:我也听得到呢,然后继续说……
不要看这个例子好像挺傻的样子,但仔细想想,是不是这个道理?不然可能你讲了半天话,对面其实都没听见……
优点:传输数据是安全的,适用于重要数据传输。
缺点:每次都有三次握手,消耗资源大,效率相对较低。
2.UDP协议
①UDP称为用户数据报协议
全称为:User Datagram Protocol
②UDP 是无连接通信协议
即在数据传输时, 发送端和接收端不建立逻辑连接,也就是不握手。
优点:通信效率高, 所以通常都会用于音频, 视频和普通数据的传输。
缺点:由于UDP面向无连接, 不能保证数据的完整性, 因此在传输重要数据时不建议使用 UDP 协议.
就比如说视频聊天,我们最在乎的是什么?
是不能卡,不能有延迟,我宁愿丢失几帧的数据(视频数据有稍许丢失对用户影响不大),不卡就行,所以要求就是效率要高。
总之TCP协议也好,UDP协议也罢,根据不同的要求有不同的应用场景。
三、网络三要素之IP
1.定义
IP是英文Internet Protocol的缩写。意思是“网络之间互连的协议”,也就是为计算机网络相互连接进行通信而设计的协议。
IP地址是网络中计算机的唯一标识,通过IP地址可以找到指定计算机。
不要看概念好像很难懂,说白了就有点类似于人类中的身份证。
2.版本
比如说:192.168.1.101
这就是一个IP地址,相信很多人或多或少都接触过。
这是一个十进制的数据,把它转换成二进制看看?
其本质上是一个32位的二进制数字,一个字节有8位,所以其占用4个字节,也就是一共32位。
所以理论上一共有多少个IP地址?
一位要么为0要么为1,故一共有2的32次方,也就是约43亿个IP地址。
全球一共多少人?70多亿。
IP地址不够用,面临枯竭的危险。
所以有了IPv6版本。
IPv6占用16个字节,也就是128位,故一共有2的128次方个IP地址。
这可就厉害了,数量超级大,别说是人类,就是全球所有动物加起来都完完全全够用。
3.常用命令
Windows R,输入cmd,可以进入DOS窗口
①查看本机IP地址
在控制台输入:ipconfig
②网络是否连通
在控制台输入:ping 空格 IP地址
例如: ping 220.181.57.216
就是检查和220.181.57.216这个地址是否连通了。
③特殊的IP地址
本机IP地址:127.0.0.1 、 localhost
四、端口号port
1.定义
我们都知道计算机里面有很多应用程序。
根据IP可以找到对应的计算机,那如何找到对应的应用程序呢?端口就可以作为这些应用程序的唯一标识。
准确地说,端口是指定进程的唯一标识,一个应用程序有1个或者多个进程(1或者多个端口)。
2.取值
用2个字节表示,取值是0~65535。
我们在计算机里可以给对应的进程定义一个端口号。
其中0~1023之间的端口号用于一些知名的网络服务和应用,不可用于其他进程。
所以根据IP加上端口:可以找出对应计算机里的对应程序。