版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第6章网络通信,6.1网络视图,6.1.1浏览器引擎网络工具包,网络工具包是一个开源浏览器引擎。Webkit内核具有非常好的网页解析机制,许多应用系统使用WebKit作为浏览器内核。安卓进一步封装了Webkit并提供了丰富的应用编程接口。安卓平台的网络工具包模块由Java层和网络工具包库组成。Java层负责与Android应用程序的通信,而WebKit库负责实际的页面布局处理。WebKit包中的几个重要类,6.1.2 WebView对象,1。Webview类WebView类是WebKit模块的Java层中的一个视图类,所有需要使用网页浏览功能的安卓应用程序都应该创建这个视图对象来显示和处理请求
2、的网络资源。网络工具包模块支持HTTP、HTTPS、FTP和javascript请求。作为应用程序的用户界面,WebView为用户提供了一系列的网页浏览和用户交互界面,客户可以通过这些界面访问WebKit的核心代码。WebView类的常用方法,2。使用网络视图的描述,(1)设置网络视图的基本信息:如果访问的页面中有Javascript,网络视图必须设置为支持Javascript。webview.getSettings()。setJavaScriptEnabled(真);触摸焦点工作请求焦点();取消滚动条。(2)设置网页显示方式:网络浏览:本地文件是。本地文件应该存储在项目的资产目录中。(3)
3、点击带有webview的链接,阅读多页后,如果不做任何处理,点击系统“后退”键,浏览器将调用finish()结束自己的操作;如果希望浏览的网页后退而不是退出浏览器,则需要在当前的“活动”中重写“活动”类的onkeydown (int keycoder,keyeventevent)方法来处理“后退”事件。示例6-1应用WebView对象浏览网页。(有关代码的详细信息,请参见教科书),6.1.3调用JavaScript,(1) websteeins类,(2)WebViewClient类,用于处理WebView对象中的各种事件。通过重写这些提供的事件方法,当页面加载、资源加载和页面访问出错时,可以对
4、WebView对象执行各种操作。(3)WebColleClient类,它是一个帮助WebView处理JavaScript对话框、网站标题、网站图标、加载进度条等的类。2.调用本地网页文件的JavaScript可以在Android程序中调用本地网页文件的JavaScript,如下例所示。示例6-2在安卓程序中调用本地的超文本标记语言程序。(1)在安卓工作室编辑器中,首先调整到“项目”模式,然后在“主”目录下创建一个新的“资产”目录,并在“资产”目录下创建一个HTML程序test.html。(2)界面布局文件(见教科书),(3)控制文件(见教科书),示例6-3安卓程序操纵Javascript对话框
5、。(1)在项目的“资产”目录下创建一个新的JavaScript对话框程序test1.html。(2)操纵安卓主控程序中的JavaScript对话框。(代码见教科书),6.2基于TCP协议的网络编程,6.2.1网络编程基础知识,1。IP地址网络中的每台计算机都必须有一个唯一的IP地址作为标识符,这个数字通常被写成一组用“.”分隔的十进制数。在j包中,IP地址由一个名为InetAddress的特殊类来描述。这个类提供了三个静态方法来获取InetAddress类的一个实例,getLocalHost()返回本地主机的IP地址。返回对应于指定主机的IP地址。对于一个主机,有多个IP地址(多宿主主机)可以
6、用来获取一个IP地址数组。此外,对于InetAddress的一个实例,getAddress()可用于获取以字节数组表示的IP地址。例6-4通过域名找到IP地址。,核心语句:23类m click实现onclick侦听器24 25重写26公共void onclick (view arg0) 27 28字符串;29尝试30 IneTadAddress zsm _ address=IneTadAddress . GetByName();31 str=思想论坛的IP地址:n zsm _ address . tostring();32 33 catch(未知主机例外e) 34 35 str=找不到思想论坛
7、;吐司,吐司。长度_长)。show();38、39、2、端口,因为一台计算机可以同时运行多个网络程序,IP地址只能保证向计算机发送数据信息,但不可能知道这些数据要发送到主机上的哪个网络程序,所以我们用“端口号”来识别计算机上运行的进程(程序)。每个传输的网络数据包还包含一个“端口号”,用于将数据帧提供给具有相同端口号的应用程序进行处理。图9.3使用“端口号”来标识流程;3.TCP是一种面向连接的通信协议,在两台计算机之间提供可靠且无错的数据传输。UDP是一种无连接的通信协议,它不能保证可靠的数据传输。4.插座,什么是插座?在TCP/IP通信协议中,套接字是IP地址和端口号的组合。5.客户端建立
8、一个socket对象,并使用客户端的Socket类建立一个连接到指定服务器的IP和端口号的套接字。构造方法是:套接字(主机_IP,端口);其中主机IP是服务器的IP地址,端口是端口号。创建Socket对象时可能会发生异常,所以在创建Socket对象时应该使用try-cauch结构来处理异常事件。Socket的主要方法有:getInputStream():获取输入流并读取从网络线路传输的数据信息。GetOutputStream():获取一个输出流,并使用该输出流将数据信息写入网络“线路”。6.服务器端建立一个套接字对象。当编写一个TCP网络服务器程序时,服务器套接字类被用来创建一个服务器套接字。
9、服务器套接字类的构造方法是:服务器套接字(内部端口);创建服务器套接字实例不需要指定一个IP地址,服务器套接字总是处于侦听本机端口的状态。服务器套接字类的主要方法:套接字接受();该方法用于与服务器端指定端口监控客户端发起的连接请求进行连接,其返回值为Socket对象。9.2、基于TCP协议的网络程序设计,使用Socket socket设计客户端/服务器系统程序进行数据通信和传输,大致有以下步骤:(1)在服务器端创建服务器Socket,设置建立连接的端口号。(2)创建一个客户端套接字对象,设置绑定的主机名或IP地址,并指定连接端口号。(3)客户端套接字发起连接请求。(4)建立联系。(5)获取输
10、入流和输出流。(6)使用输入流和输出流进行数据传输。(7)关闭套接字和服务器套接字。6.2.2基于TCP协议的网络程序设计,客户端/服务器模式,示例6-5远程数据通信示例,此示例由两部分组成:客户端程序和服务器程序。在配置文件AndroidManifest.xml中添加允许访问网络的权限语句:(b)客户端运行结果,(a)服务器运行结果,6.2.3应用Callable接口实现多线程套接字编程,1。Java语言中的可调用接口,常用的线程类在run()方法执行后没有返回值,需要由第三方转储,以实现子线程完成任务后的返回值返回给主线程。可调用接口提供了一个带有返回值的多线程实现方法。可调用接口定义如下
11、:公共接口可调用vcall()引发异常;2.线程接口Runnable和可调用接口的区别可调用接口类似于Java的Runnable接口,但它们之间有许多不同之处:(1)自java1.1以来就存在可运行接口,但可调用接口是在1.5之后新增的;(2)在2)可调用接口中定义的方法是call(),在runnable中定义的方法是run();(3)3)可调用接口的任务在执行后可以有返回值,而可运行接口的任务不能有返回值(其返回类型为空);(4)call()方法可以引发异常,但run()方法不能引发异常;(5)运行可调用接口任务可以返回一个Future对象,这是异步计算的结果。它提供了一种方法来检查计算是否
12、完成,等待计算完成,并检索计算结果。通过Future对象,您可以了解任务的执行情况,取消任务的执行,并获得执行结果。3。使用可调用接口的多线程套接字编程示例,以及使用可调用接口的多线程远程数据通信示例。安卓客户端程序由实现可调用接口的connSocket.java和主程序MainActivity.java组成。(代码省略),6.3基于HTTP协议的网络程序设计,6.3.1建立PHP服务器网站,手机获取网络服务器数据图,1。httpr connection类httpr connection是java的一个标准类,它需要复杂的设置,因为它没有封装,所以使用起来不方便。2.严格模式类严格模式通常用于
13、捕获在磁盘访问或网络访问中与主进程交互所导致的问题,因为用户界面操作和某些操作的执行最常用于主进程中,并且它们之间会有一些冲突。从主线程中剥离磁盘访问和网络访问可以使磁盘或网络访问更加顺畅,并提高响应速度和用户体验。6.3.2通过使用HttpURLConnection访问网络服务器,并从网络服务器读取图像文件。(1)在界面布局文件activity_main.xml中设置一个按钮,两个文本框用于显示信息,一个图像视图用于显示图像。如图所示。(参见教科书中的代码细节),示例6-8通过GET和POST读取数据并将其发送到网络服务器。根据主题,界面布局文件和主程序文件写在手机客户端,接收GET请求的play-get.php文件和接收POS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于循环经济的绿色建筑材料研究与应用
- 护理沟通中的语言障碍克服
- 零售业精英:生鲜部经理岗位面试全解析
- 基于人脸识别的身份认证系统应用分析
- 护理案例教学设计课件
- 旅游景点攻略及旅游路线规划
- 2026年全网主流网红推广平台:战略决策型营销生态的深度解析
- 6-6、山东省青岛地区2021-2022学年高一下学期期中语文试题
- 学习计划及未来职业规划
- 统编版道德与法治四年级下册第2课说话要算数 第二课时教学设计
- 限额以下小型工程常见安全隐患指导手册(2026版)
- NLRP3炎症小体激活与细胞焦亡的信号关联
- 公路养护工节假日后复工安全考核试卷含答案
- 2025年详版征信报告个人信用报告样板模板新版可编辑
- 2026春招:中国联通笔试题及答案
- TCCIIA0004-2024精细化工产品分类
- 质量环境及职业健康安全三体系风险和机遇识别评价分析及控制措施表(包含气候变化)
- 农业种植基地合作开发和利益分配协议
- 2025年高职汽车检测与维修技术(汽车检测)试题及答案
- 2025年11月近期典型事故案例警示教育
- 卵巢肿瘤病例讨论课件
评论
0/150
提交评论