1 / 77
文档名称:

第8章 Android 通信应用《Android程序设计教程》课件.ppt

格式:ppt   页数:77页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第8章 Android 通信应用《Android程序设计教程》课件.ppt

上传人:autohww 2016/3/11 文件大小:0 KB

下载得到文件列表

第8章 Android 通信应用《Android程序设计教程》课件.ppt

文档介绍

文档介绍:第八章 Android 通信应用 1主要内容? Socket 通信? 蓝牙? WiFi 通信 2 ? Socket 简介? Socket 通信模型及重要的 API ? ServerSocket 类? Socket 连接过程? Android 中的 Socket 通信 3 ? Socket 通常也称作" 套接字" ,应用程序通常通过" 套接字"向网络发出请求或者应答网络请求。? Socket 通信是在双方建立起连接后就可以直接进行数据的传输,在连接时可实现信息的主动推送,而不需要每次由客户端想服务器发送请求。? Socket 是一种低级、原始的通信方式,要编写服务器端代码和客户端代码,自己开端口,自己制定通信协议、验证数据安全和合法性,而且通常还应该是多线程的,开发起来比较繁琐。 Socket 简介 4 ?网络传输协议分为两种: TCP 和 UDP ? TCP ( Transmission Control Protocol ,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。 TCP 协议能为应用程序提供可靠的通信连接,使一台计算机发出的字节流无差错地发往网络上的其他计算机,对可靠性要求高的数据通信系统往往使用 TCP 协议传输数据。? UDP ( User Data Protocol ,用户数据报协议)是与 TCP 相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去。 UDP 适用于一次只传送少量数据、对可靠性要求不高的应用环境。 Socket 通信模型及重要的 API 5 ? Socket API ?在 Socket 通信中能用到的重要的 Socket API : .Socket 继承于 ,有八个构造器用于负责类中成员变量(域) 的初始化。其方法并不多,下面介绍使用最频繁的三个方法。? Accept 方法用于产生" 阻塞" ,直到接受到一个连接,并且返回一个客户端的 Socket 对象实例。? getInputStream 方法获得网络连接输入,同时返回一个 InputStream 对象实例。? getOutputStream 方法连接的另一端将得到输入,同时返回一个 OutputStream 对象实例。 Socket 通信模型及重要的 API 6 ?进行 Socket 通信必然用到 ServerSocket 类,在这里我们首先介绍一下 ServerSocket 类的各个构造方法,以及成员方法的用法。? 1. 构造 ServerSocket ? ServerSocket 的构造方法有以下几种重载形式: ServerSocket() ServerSocket(int port) ServerSocket(int port, int backlog) ServerSocket(int port, int backlog, InetAddressbindAddr) ServerSocket 类 7 ?在以上构造方法中,参数 port 指定服务器要绑定的端口( 服务器要监听的端口),参数 backlog 指定客户连接请求队列的长度,参数 bindAddr 指定服务器要绑定的 IP地址。?绑定端口:除了第一个不带参数的构造方法以外,其他构造方法都会使服务器与特定端口绑定,该端口由参数 port 指定。例如,以下代码创建了一个与 80 端口绑定的服务器: ServerSocket ServerSocket=new ServerSocket(80); ServerSocket 类 8 ?如果运行时无法绑定端口会抛出 BindException ,其原因如下: ?端口已经被其他服务器进程占用; ?在某些操作系统中,如果没有以超级用户的身份来运行服务器程序,那么操作系统不允许服务器绑定到 1~1023 之间的端口。如果把参数 port 设为 0 ,表示由操作系统来为服务器分配一个任意可用的端口。由操作系统分配的端口也称为匿名端口。对于多数服务器,会使用明确的端口,而不会使用匿名端口,因为客户程序需要事先知道服务器的端口,才能方便地访问服务器。 ServerSocket 类 9 II. 设定客户连接请求队列的长度: ServerSocket 构造方法的 backlog 参数用来显式设置连接请求队列的长度,它将覆盖操作系统限定的队列的最大长度。值得注意的是,在以下几种情况中,仍然会采用操作系统限定的队列的最大长度: ? backlog 参数的值大于操作系统限定的队列的最大