一起Talk Android吧(第三百二十八回:Android中网络通信之UPD概述)

Posted talk_8

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一起Talk Android吧(第三百二十八回:Android中网络通信之UPD概述)相关的知识,希望对你有一定的参考价值。

各位看官们,大家好,上一回中咱们说的是android中约束布局的例子,这一回中咱们说的例子是网络通信之UDP概述。闲话休提,言归正转。让我们一起Talk Android吧!

什么是UDP

看官们,UDP(User Datagram Protocol)是协议名称的缩写,它是一种无连接的协议,通俗点说就是通信双方可以直接通信,而不需要像TCP通信一样建立连接后才可以通信;因此这种通信方式是不可靠的,不可靠主要表现在两个方面:

  • 1.接收方不一定能收到发送方发送的数据,或者可能收到多个重复的数据;
  • 2.接收方收到的数据顺序与发送方发送的数据顺序不一定相同;

既然这种通信方式不可靠,那么为什么还要介绍呢?因为它有一个优点:通信效率高。为什么高?因为通信双方不需要建立连接,所以节省了很多时间和资源。

UDP和TCP是什么关系

UDP协议和TCP协议都位于网络OSI模型中的传输层,这两个协议是相互补充的,主要内容如下:

  • 1.UDP是无连接的协议,通信速度快,但是通信不可靠;
  • TCP是有连接的协议,通信速度慢,但是通信可靠;

一般情况下,对时效性要求比较高的应用会使用UDP协议,比如音视频应用,微信等即时通信应用;对可靠性要求高的应用会使用TCP协议,比如浏览器使用的HTTP来访问网站;

UDP通信流程

为了方便解释通信流程,我们假设有两台电脑进行UDP通信,接收数据的一方叫接收方,发送数据的一方叫发送方;下面是详细的通信流程:

  1. 接收方创建创建Socket对象,主要是绑定端口和分配资源;
  2. 接收方开始监听端口,随时准备接收从端口传送来的数据;
  3. 发送方创建Socket对象,主要是绑定端口和分配资源;
  4. 发送方把数据封装到数据包中,主要封装了被传送的数据和接收方的IP地址与端口;
  5. 发送方通过Socket发送数据;
  6. 发送方和接收方通信完成后关闭Socket以便释放相关的资源;

关于上面的流程需要做一些详细的说明,具体如下:

  1. 接收方创建Socket对象绑定的端口和发送方封装到数据包中的端口必须一致,不然会导致接收方无法的接收数据;
  2. 发送方创建Socket对象时绑定的端口可以是任意的; 发送方封装数据包时类似于我们发快递,需要填写收件人(端口号)和地址(IP地址);
  3. 通信完成后需要关闭Socket,主要是释放端口;

UDP通信流程相比TCP通信流程简单一些,通信过程中一方发送,另外一方接收,发送方只管发送,接收只管接收。双方的角色不固定,可以随时交换。

UPD通信需要使用专门的数据包,通信双方基于数据包来传输数据,而TCP则是在建立连接后使用IO流来传输数据。

为了方便大家更好地理解通信的过程,我画了一个流程图,请大家参考:

最后,我们对本章回的内容做一个总结:

  • 1.UDP是一种无连接的协议,UDP和TCP协议一起位于传输层;
  • 2.UDP通信不可靠,但是传输效率高,因此与TCP协议相互补充;
  • 3.UDP通信没有特殊的通信流程,但是使用专门的数据包进行通信;

看官们,关于Android中网络通信之UDP概述的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!

以上是关于一起Talk Android吧(第三百二十八回:Android中网络通信之UPD概述)的主要内容,如果未能解决你的问题,请参考以下文章

一起Talk Android吧(第三百八十八回:lifecycle)

一起Talk Android吧(第三百八十八回:lifecycle)

一起Talk Android吧(第三百七十八回:给ViewPager添加indicator)

一起Talk Android吧(第三百三十八回: Android中的OkHttp一)

一起Talk Android吧(第三百四十八回:解析JSON数组三)

一起Talk Android吧(第三百二十六回:Android中的布局编辑器)