还剩4页未读,继续阅读
文本内容:
手机作为一种通讯终端,伴随着网络的升级而不断的升级换代年问世,手机只MMS19951G能进行基本的语音通讯,年及其后的等技术的快速发展,1996-19972G GSM,CDMA GPRS,EDGE手机开始逐渐增加了数据服务功能年开始,在全世界开始大规模布置以及苹果创造20093G性开发新型苹果手机手机慢慢的变成互联网的终端,从而带动了一个新的时代—移动互联网时代因此现代手机通常都支持这些常用网络设备,如蓝牙等WIFLNFC,是由互联网巨头带头开发的,因此对网络功能的支持是必不可少的的应Android GoogleGoogle用层采用的是语言所以支持的网络编程方式都支持,同时还引入了Java JAVAAndroid Google的扩展包另外,针对分别提供的单独的开发Apache HTTPWIFI,NFC,API.表展示了中的一些与网络有关的包名表网络包包描述1Android SDKAPI
1.Android SDKAPILevel提供与联网有关的类,包括流和数据包、Java.net datagramsockets协议和常见处理该包是一个多功能网络资源有经验的开发人员可以立即Internet HTTPJava使用这个熟悉的包创建应用程序1虽然没有提供显式的联网功能,但是仍然非常重要该包中的类java.io由其他包中提供的和连接使用它们还用于与本地文件在与网络进行交互时会经Java socket常出现的交互包含表示特定数据类型的缓冲区的类适合用于两个基于1java.nio Java语言的端点之间的通信1表示许多为通信提供精确控制和功能的包可以将视为流行的开源org.apache.*HTTP Apache服务器除核心类以外,包含额外的网络访问该包包括Web1android.net java.net.*socket IIRI类,后者频繁用于应用程序开发,而不仅仅是传统的联网方面Android1包含处理证书的类android.net.http SSL1包含在平台上管理有关无线所android.net.wifi AndroidWiFi
802.11Ethernet有方面的类包含用于管理和发送文本消息的类一段时间1android.telephony.gsm SMS后,可能会引入额外的包来来为非网络提供类似的功能,比如或等GSM CDMAandroid.telephony.cdma网络包含平台上管理有关协议如建立和回应的类1Android.net.sip AndriodSIP Voip9Android.nfc包含所有用来管理近场通信相关的功能类9在中几种网络编程的方式Android针对的、1TCP/IP SocketServerSocket针对的这里需要注意的是,考虑到设备通2UDP DatagramSocketDatagramPackage Androido常是手持终端都是随着上网进行分配的不是固定的因此开发也是有一点与普通互联网应JP用有所差异的针对直接的3URL HttpURLConnection集成了客户端,可使用进行网络编程针对集成了4Google ApacheHTTP HTTP HTTP,Google和版本,因此特别注意不支持Appache Httpcore httpclient4Android httpclient
3.x系列,而且目前并不支持,需要自行添加Multipart MIMEhttpmime.jar使用可以通过开源包如去支持和另外也可以用5Web ServiceoAndroid jacksonXmlrpc Jsonrpc,去实现Ksoap2Webservice直接使用视图组件显示网页基于进行开发,已经提供了一个基6WebView WebViewGoogle于的浏览器,直接就可以进行上网浏览网页chrome-lite Web
一、我们先来看第一种,针对、的形式TCP/IP SocketServersocket是一种协议,是一种面向连接的、可靠的协议仅仅是对、网络接口的TCP/IP SocketTCP UDP封装,不涉及上层协议、传输特性不同,分别适用于不同类型的应用层协议,其中TCP UDPTCP有连接,延时较长,能保证服务质量;无连接,需要应用程序进行数据分包、延时短,效UDP率高,数据包可能丢失或到达对端发生顺序混乱在之上可以实现这些标准的应用Socket RFC层协议,也可以自定义实现私有的应用层协议在编程中,经常使用和包来开发程序,下面列出所有常用的类,JAVA java.net javax.net socket并简单介绍关于详细的信息请参看文档JAVA客户端连接使用的TCP socketJava.net客户端和服务端共同使用的服务端监Java.net.Datag ramSocket UDP socket TCPsocket听端口Java.net.ServerSocket地址封装类Java.netlnetAddress IP通过收发的数据包的封装类,包括数据Java.net.DataGra mPacket Datagramsocket和对端的地址、端口IP UDPJavax.net客户端连接使用的服务端监听端T CPsocket TCPsocket口客户端构造器服务端监听构造器SSL SocketSSL Socket示例代码编程实例
二、针对的android+socket.rar UDP、Datagramsocket DatagramPackage•对于服务端,首先启动侦听服务,然后得到数据包进行处理,组后根据获得数据包进行1UDP反馈没有连接的概念,因此构造完成的不会发出向对端的网络连接请
2.UDPsocketDatagramsocket求,在每一个发送的数据包中包含目的地址和端口因为数据不会在对端进行重新组UDP UDP包,因此一次发送的数据长度必须加以限制用于发送一个数据包;Socket.sendoutputPacket;用于接收一个数据包socket.receiveinputPacket;server clientTCPconnectioninitializing initializingServerSocket Socketwaitingfor clientsendingrequestprocessing requestresponsingreplyingclose connection closeconnectionserver clientinitializinginitializingDategramSocket DatagramSocketprocessingpackage sendingpackagerepaying responsingcloseconnection clo«econnection示例代码:服务器端:public classUDPServer{public staticvoid mainString[]args throwsException{Datagramsocket udpSocket=new DatagramSocket8000;whiletrue{try{数据读取//UDPDatagram Packetpacket=new DatagramPacketnewbyte
[512],512;ud pSocket.recei vepacket;String msg=new Stringpacket.getData,O,packet.getLength;System.out.printlnmsg;ifmsg.equalsexit{break;数据发送//UDPSimpleDateFormat f=new SimpleDateFormatMMMdd,yyyykk:mm:ss;=现在的时间是+String timef.formatnew Date;packet.setDatatime.getBytes;udpSocket.sendpacket;}catchException e{e.printStackTrace;udpSocket.close;客户端public voidclient{InetAddress remotelP;try{remotelP=InetAddress.getByNamelocalhost;Datagramsocket socket=new DatagramSocket;}catch UnknownHostExceptionel{e
1.pri ntStackTrace;Buffered Readerwt=new BufferedReader newInputStreamReaderSystem.in;System.out.printlninput oneline,user\exit\to quitthe serverwhiletrue{try{//读取输入String str=wt.readLine;byte[]outputData=str.getBytes;数据发送//UDP socketDatagramPacketoutputPacket=newDatagramPacketoutputData,outputData.length,remoteIB8000;socket.sendoutputPacket;ifstr.equalsHexitH{数据读取//udpDatagramPacket inputPacket=newDatagramPacketnew byte
[512],512;socket.receiveinputPacket;System.out.printlnnewStringinputPacket.getData O,inputPacket.getLength;z}catchException e{e.printStackTrace;socket.close;
三、针对直接的URL HttpURLConnection这个就是把请求的方式从换成就可以了没什么可以说的,自己HttpCIient HttpURLConnection看看吧示例代码无
四、集成了客户端,可使用进行网络编程Google ApacheHTTPHTTP这个不多说了,网络编程,必须会的自己看代码吧服务端我使用三种方式、只用S2SH、客户端就一种,只不过换个请求的服务端和客户端交互使用了两种方式Struts2Servleto URL、目前开放平台返回的数据都是支持这两种数据格式的所以我也实现了这两种数据XML JSON,格式其实还有一种格式,就是的这种形式在国内用的人比较少,我也google protocalbuffer,没弄,感兴趣的同学看我提供的文档,自己研究吧注意把里面的换成自己电脑的地址IP IP示例代码服务端、ServletTestl.rar StrAnd.rar WebAndraid.rar客户端WebAndroidClient.rar参考网址・・・・cnblogs com/zharcidong./04/19/
2020688.html httD//bloq,csdn.ret/woshisaD/artide/details/
6621.571〃httD
118259561.shtml注意在只使用的服务器端,可以这么配置Struts2package name=struts-main,,extends=json-defaultHaction name=n*UserActionn class=HuserAction method=H{l}result type=json/result/action/package也可以这么配置package name=struts-mairT extends=struts-default actionname=,,*UserActionH class=userAction method=,{l}result name=register/WEB-INF/page/register.jsp/resultresult name=save/WEB-INF/page/index.jsp/result/action/package但是其实返回数据的时候都是封装字符串,没用到第一种形式的配置的功能据JSON说,用第一种配置方式,可以自动把返回的数据封装成字符串的形式,但是我没struts2JSON测试成功我返现返回什么格式还是什么格式,并没有把数据自动封装成返回JSON在使用的服务端,就不能用第一种方式配置只能用第二种方式,然后服务端封装S2sH JSON返回客户端如果用第一种方式配置,就会发生错误无法找到服务器端404在使用的服务端,可以通过下面这种方式设置返回类型,但是其实没用,你设置了,Servlet它也不返回你只能自己封装文件或者字符串,然后返回XML JSONresponse.setContentTypeapplication/json;charset=utf-8,;使用5Web Service我之前只听说过什么事因此主要是参考下面文章实现的他给出了一些实例代webservice,DEMO,码,不全,我给基本补全了显示天气信息我都在输出了,没有显示在界面上,如果大家LOG觉得不爽,可以把信息直接显示在界面上就可以了因为我被这个问题困扰了天,弄的很崩2溃,所以就没继续弄大家自己看吧那么什么是呢?,它是一种基于协议的远程调用标准,通过可以将webService SAOPwebservice不同操作系统平台,不同语言,不同技术整合到一起在中,第三方公司提供了基于Android的包webservice jarksoap2-android-assembly-
2.
5.2-jar-with-dependencies.jar httD『・・//www,crblogs,com/zhd gdong./04/19/
2020688.html〃http:l/04/26/
2028904.html示例代码直接使用视图组件显示网页SoapAndroidleset.rar sserExO9,rar6WebView这就是使用显示网页的问题,比较容易,大家自己看吧我就不贴实例代码了webview。