【Java】基础44:什么叫网络编程?

2020-07-30 16:04:56 浏览数 (1)

玩游戏的小伙伴应该知道单机游戏、端游、页游之分。

端游:比如英雄联盟这些,我们若是要玩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加上端口:可以找出对应计算机里的对应程序。

0 人点赞