前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Java】基础44:什么叫网络编程?

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

作者头像
刘小爱
发布2020-07-30 16:04:56
5660
发布2020-07-30 16:04:56
举报

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 刘小爱 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 二、网络三要素之协议
  • 四、端口号port
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档