1、TCP/IP协议(传输层协议)php
一、Socket与ServerSockethtml
Socket是应用层与TCP/IP协议簇通信的中间抽象层,Socket是一组接口,在设计模式中,Socket的设计就是门面模式,它把复杂的TCP/IP协议簇的内容隐藏在套接字接口后面,用户无需关心协议的实现,只需使用Socket提供的接口便可。java
Socket的类型有两种,一种是面向链接的TCP应用服务,一种是面向无链接的UDP(User Data Package)应用服务。通俗的理解就是,TCP方式是打电话(链接性),UDP方式是发短信(无链接)。android
ServerSocket类,是用于监听计算机的指定端口处创建一个监听服务,正真传输数据的对象是socket对象。web
ServerSocket 通常仅用于设置端口号和监听,真正进行通讯的是服务器端的Socket与客户端的Socket,在ServerSocket 进行accept以后,就将主动权转让了。chrome
详细请看:http://www.cnblogs.com/mareymarey111/archive/2011/12/08/2280253.html编程
2、UDP协议(传输层协议)设计模式
UDP协议全称是用户数据报协议 ,在网络中它与TCP协议同样用于处理数据包,是一种无链接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送以后,是没法得知其是否安全完整到达的。UDP用来支持那些须要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都须要使用UDP协议。UDP协议从问世至今已经被使用了不少年,虽然其最初的光彩已经被一些相似协议所掩盖,可是即便是在今天UDP仍然不失为一项很是实用和可行的网络传输层协议。浏览器
UDP协议的主要做用是将网络数据流量压缩成数据包的形式。一个典型的数据包就是一个二进制数据的传输单位。每个数据包的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。安全
为了在给定的主机上能识别多个目的地址,同时容许多个应用程序在同一台主机上工做并能独立地进行数据包的发送和接收,设计用户数据报协议UDP。
使用UDP协议包括:TFTP、SNMP、NFS、DNS、BOOTP
UDP使用底层的互联网协议来传送报文,同IP同样提供不可靠的无链接数据包传输服务。它不提供报文到达确认、排序、及流量控制等功能。
一、DatagramSocket与DatagramPackage
DatagramSocket表明UDP协议的Socket,DatagramSocket自己只是码头,不维护状态,不能产生IO流,它的惟一做用就是接收和发送数据报,
详细解释请看:http://blog.csdn.net/jiangxinyu/article/details/8161044
DatagramPacket来表明数据报,DatagramSocket接收和发送的数据都是经过DatagramPacket对象完成的。
详细解释请看:http://blog.csdn.net/oney139/article/details/8063067
3、HTTP协议(应用层协议)
HTTP协议是一种应用层协议,HTTP是HyperText Transfer Protocol(超文本传输协议)的英文缩写。HTTP能够经过传输层的TCP协议在客户端和服务器之间传输数据。HTTP协议主要用于Web浏览器和Web服务器之间的数据交换。咱们在使用IE或Firefox浏览网页或下载Web资源时,经过在地址栏中输入http://host:port/path,开头的4个字母http就至关于通知浏览器使用HTTP协议来和host所肯定的服务器进行通信。
详细请看:http://blog.csdn.net/xijiaohuangcao/article/details/6729277
在Android中使用JDK的HttpURLConnection和Apache的HttpClient访问网络资源
一、HttpURLConnection
Java 应用程序须要直接经过 HttpURLConnection类来访问指定url地址的网络资源,提供了post和get的方法。
详情解释请看:http://blog.csdn.net/loovejava/article/details/12950129
二、HttpClient(Google集成了Apache HTTP协议)
Android中,androidSDK中集成了Apache的HttpClient模块,用来提供高效的、最新的、功能丰富的支持 HTTP 协议工具包,而且它支持 HTTP 协议最新的版本和建议。
详情解释请看:http://blog.csdn.net/litton_van/article/details/6544086
HttpURLConnection与httpClient的区别在于httpClient封装好了http协议请求的方法和模块,快速集成方便。详解:http://blog.csdn.net/micaixiaoduanku/article/details/39958615
3、Android调用webService通讯
Web Services(Web服务)是一个用于支持网络间不一样机器互操做的软件系统,它是一种自包含、自描述和模块化的应用程序,它能够在网络中被描述、发布和调用,能够将它看做是基于网络的、分布式的模块化组件。
Web Services是创建在通用协议的基础之上,如HTTP、SOAP、UDDI、WSDL等,这些协议在操做系统、编程语言和对象模型的选择上没有任何倾向,所以有着很强的生命力。
Web Services的优点在于提供了不一样应用程序平台之间的互操做,它使得基于组件的开发和Web相结合的效果达到最佳。它是基于HTTP协议的,调用请求和回应消息均可以穿过防火墙,不须要更改防火墙的设置,这样就避免了使用特殊端口进行通讯时没法穿越防火墙的问题。
简单的说:经过使用WebService,咱们可以像调用本地方法同样去调用远程服务器上的方法。咱们并不须要关心远程的那个方法是Java写的,仍是PHP或C#写的;咱们并不须要关心远程的方法是基于Unix平台,仍是Windows平台,也就是说WebService与平台和语言无关。
Android调用webservice主要有:SOAP协议和 WSDL协议
一、SOAP协议
SOAP(Simple Object Access Protocol,简单对象访问协议)是一种轻量级的、简单的、基于XML的协议,被设计用于在分布式环境中交换格式化和固化信息的简单协议。也就是说,要进行通讯,进行数据访问传输,就必须依赖于必定的协议,而SOAP正是WebService通讯中所依赖的一种协议。目前常用的SOAP协议有两个版本:SOAP 1.1 和 SOAP 1.2。
注意的是:Android使用soap协议调用webservice的时候,调用的是服务器的方法,传的参数要按顺序传,配置的版本号也要正确,读者可自行参考详解作。见附件
详细使用:http://blog.csdn.NET/long704480904/article/details/8636734
二、WSDL协议
WSDL(Web Services Description Language,即Web服务描述语言)是一种用来描述Web服务的XML语言,它描述了Web服务的功能、接口、参数、返回值等,便于用户绑定和调用服务。它以一种和具体语言无关的方式定义了给定Web服务调用和应答的相关操做和消息。
详细使用:http://blog.csdn.net/howlaa/article/details/21237331
4、Android使用webview调用服务器
直接使用WebView视图组件显示网页。基于WebView 进行开发,Google已经提供了一个基于chrome-lite的Web浏览器,直接就能够进行上网浏览网页。