第 7 章
网络通信
- 2 -
了解 Android 中网络通信的的方式
理解 Socket 、 ServerSocket 原理及常用方法
掌握使用 Socket 和 ServerSocket 进行网络通信
掌握 HttpURLConnection 的使用
掌握 HttpClient 的使用
熟悉 WebKit 的组成及原理
掌握使用 WebView 组件浏览网页
本章目标
- 3 -
网络通信
•
网络通信包含三部分内容:发送方、接收方以及协议栈
发送方和接收方是参与通信的主体
协议栈是发送方和接收方进行通信的规约
•
按照服务类型,网络通信可分为面向连接和无连接的方式
面向连接是在通信前建立通信链路,而通信结束后释放该链路
无连接的方式则不需要在通信前建立通信连接,这种方式不保
证传输的质量
•
Android 中常用的网络编程方式如下
针对 TCP/IP 协议,使用 Socket 和 ServerSocket
针对 HTTP 协议,如 HttpURLConnection 和 HttpClient ;
直接使用 WebKit 访问网络
注意 :
Android 中所有访问网络的操作必须在新的线程中执行,不能直
接在主线程 (UI 线程 ) 中执行
不能在主线程之外的其他线程更新 UI ,可以通过 Handler 来更
新 UI 。
- 4 -
Socket 通信
•
Socket 通信是指双方采用 Socket 机制交换数据
TCP 协议是可靠的、面向连接的协议,这种方式需要在通信前
建立通信双方的连接链路,而通信结束后又释放该链路
UDP 数据报协议是不可靠的、无连接的协议,这种协议不需要
在通信前建立通信双方的连接。因而 UDP 使用可靠性来换取传输
开销,其传输开销比 TCP 小
•
java.net 包中提供了两个 Socket 类
Socket 是客户端的 Socket 对应的类
ServerSocket 是服务器端的 Socket 对应的类,这个类表示一
个等待客户端连接的服务器端套接字
Socket
- 5 -
Socket 的方法 功能描述
提供 个构造函数。该构造函数用于创建一个到主机
、端口号为 的套接字,并连接到远程主机
将该 同参数 指定的地址和端口绑定
获取该 连接的目标主机的 地址
获取该 的接受缓冲区的尺寸
关闭
!! 获取该 的输入流,这个输入流用来读取数据
" 判断该 是否连接
#$ 判断该 的输出管道是否关闭
$ 判断该 的输入管道是否关闭
% 获取此 的本地地址和端口
获取端口号
Socket 工作步骤:
① 根据指定地址和端口创建一个 Socket 对象。
② 调用 getInputStream() 方法或 getOutputStream() 方法打开连接到 Socket 的输
入 /出流。
③ 客户端与服务器根据一定的协议交互,直到关闭连接。
④ 关闭客户端的 Socket 。
&
''()*+*+*( 是 ,"' 协议中默认的本机地址
-$.()*+*+*(./0/01
2#345&
!**.36.71
28$9345&
!**.36.71
2
评论0