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

Posted talk_8

tags:

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

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

TCP和Socket是什么关系

TCP(Transmission Control Protocol)是协议名称的缩小,通常情况下我们通过Socket来使用TCP协议进行通信,因为Socket是基于TCP的编程接口。各种操作系统都会提供Socket接口,我在Talk C例子主题中介绍过Linux操作系统上的Socket知识,知识中使用的是Linux操作系统上的Socket接口,编程语言使用C语言,感兴趣的看官可以点击这里参考。

Android平台没有提供自已的Socket接口,而是使用了Java语言的Socket接口,在接下来的章回中将介绍如何使用Java语言的Socket接口进行网络通信(包含TCP和UPD)。

网络通信主要指网络上不同的PC进行通信,不同PC通过网络连接在一起,在网络上通过PC的IP地址来标识PC,这样可以避免PC出现混乱的情况,而每一台PC内有各种应用程序,在网络上通过端口来标识不同的应用程序,这样可以避免应用程序找不到网络中传输的数据。大家可以看到IP地址和端口是网络通信的必要属性,因此Socket接口中封装了这两种属性。

TCP通信的基本流程

明白TCP和Socket之间的关系后,我们看看网络通信的基本流程。为了方便大家理解TCP通信的流程,我们以例子的方式来介绍。假设网格上有两台PC进行通信,我们称其中的一台是Client,另外一台是Server.它们之间的通信流程如下:

  • 1.Server初始化,主要绑定端口和分配资源;
  • 2.Server开始监听Client发来的连接请求;
  • 3.Client创建一个Socket对象,对象中封装了IP地址和端口等属性;
  • 4.Client向Server发起连接请求;
  • 5.Server监听到Client发来的请求并且检查是否可以建立连接;
  • 6.Server与Client建立连接,开始数据传输;
  • 7.数据传输完毕后关闭连接并且释放资源;

关于上面的流程有以下内容需要做详细说明:

  • 1.Sever的IP地址以及绑定的端口需要事先和Client声明;
  • 2.Client创建Socket对象时封装的IP地址包含Client和Server的IP地址;
  • 3.Client创建Socket对象时封装的端口包含Client和Server的端口;
  • 4.Client的IP地址和端口是Client自已分配的与Server无关;
  • 5.Client和Server建立连接后使用iostream进行通信;
  • 6.通信结束后需要关闭Socket以及IOStream;

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

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

  • 1.TCP是网络通信的协议,Socket是该协议的编程接口;
  • 2.Socket中包含两个重要的属性:IP地址和端口;
  • 3.通过文字和图形掌握TCP通信的基本流程;
  • 4.对于通过过程的内容有六点内容需要引起注意;

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

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

一起Talk Android吧(第四百一十九回:让时钟走起来)

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

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

一起Talk Android吧(第三百一十五回:Android中的ActionBar)

一起Talk Android吧(第三百一十四回:ImageView常用属性三)

一起Talk Android吧(第三百一十三回:ImageView常用属性二)