一起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)