第九讲 网络服务_第1页
第九讲 网络服务_第2页
第九讲 网络服务_第3页
第九讲 网络服务_第4页
第九讲 网络服务_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第十章第十章 网络与位置地图网络与位置地图使用使用Socket进行通信进行通信1获取网络数据资源获取网络数据资源2浏览网页浏览网页3v Socketl Socket通常称为“套接字” ,用于描述IP地址和端口,它就是网络通信过程中端点的抽象表示。l 应用程序通常通过“套接字”向网络发送请求或者应答网络请求。l 本课只讲解在TCP/IP协议族下的Socket(的不同的底层协议,有不同的Socket。)。主要的Socket类型:u流套接字(stream socket)u数据报套接字(datagram socket)l Socket 编程主要分服务器端编程和客户端编程。使用使用Socket进行通信进

2、行通信第十章第十章 网络与位置地图网络与位置地图v Socket & ServerSocketl 在包中提供了两个类Socket和ServerSocket。uServerSocket用于服务器端,uSocket是建立网络连接时使用的。u在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。l ServerSocket类是实现一个服务器端的Socket,利用这个类可以监听来自网络的请求。使用使用Socket进行通信进行通信第十章第十章 网络与位置地图网络与位置地图v ServerSocket类l 创建ServerSocket的方法:uServerSocke

3、t(int localPort ,int queueLimit)ulocalPort:端口号,其有效范围是0-65535u创建时必须指定一个端口号,以便客户端能够向该端口号发送连接请求l 操作ServerSocket的方法:uaccept()方法,为下一个传入的连接请求创建Socket实例,并将已成功连接的Socket实例返回给服务器套接字,如果没有连接请求,accept()方法将阻塞并等待。uclose()方法,用于关闭套接字。uisClosed()方法,用于判断ServerSocket是否关闭。ugetInetAddress()方法,返回服务器绑定的IP地址IP。uSgetLocalPor

4、t()方法返回服务器绑定的端口号。“阻塞阻塞”是一个术语,它使程序运行暂时是一个术语,它使程序运行暂时“停停留留”在这个地方,直到一个会话产生,然后在这个地方,直到一个会话产生,然后程序继续;通常程序继续;通常阻塞阻塞是由循环产生的。是由循环产生的。第十章第十章 网络与位置地图网络与位置地图使用使用Socket进行通信进行通信v Socket类l 创建Socket的方法:uSocket(inetAddress remoteAddress ,int remotePort)premoteAddress:远程服务器地址premotePort:远程服务器端口号u利用Socket的构造函数,可以创建一个

5、TCP套接字后,先连接到指定的远程地址和端口号。l 操作Socket的方法:ugetInputStream()方法,获得网络连接输入,同时返回一个IutputStream对象实例,。ugetOutputStream()方法,连接的另一端将得到输入,同时返回一个OutputStream对象实例。uclose()方法。第十章第十章 网络与位置地图网络与位置地图使用使用Socket进行通信进行通信v Socket 通信过程l 服务器u使用ServerSocket监听指定的端口,等待客户连接请求,客户连接后,会话产生;u在完成会话后,关闭连接。l 客户端u使用Socket对网络上某一个服务器的某一个端

6、口发出连接请求,一旦连接成功,打开会话;u会话完成后,关闭Socket。l 多客户同时连接u主程序监听一端口,等待客户接入;同时构造一个线程类,准备接管会话。当一个Socket会话产生后,将这个会话交给线程处理,然后主程序继续监听。u运用Thread类或Runnable接口来实现是不错的办法。第十章第十章 网络与位置地图网络与位置地图使用使用Socket进行通信进行通信v Socket 开发步骤l 服务器端编程步骤:u创建服务器端套接字并绑定到一个端口上(端口号0-1023是系统预留的,最好指定大于1024的端口)u套接字设置监听模式等待连接请求u接受连接请求后进行通信u返回,等待下一个连接请

7、求l 客户端编程步骤:u创建客户端套接字(指定服务器端IP地址和端口号)u连接(Android 创建Socket时会自动连接)u与服务器端进行通信u关闭套接字l 注意,要在AndroidManifest.xml文件中添加可访问网络权限,代码如:第十章第十章 网络与位置地图网络与位置地图使用使用Socket进行通信进行通信v 实例1:使用Socket进行服务器与客户端之间的通信。l 功能:u当客户连接服务器成功后服务器向控制台传送一字符串信息;u服务器端向客户端传送系统当前日期。l 准备工作:u获取本机的IP地址p在命令行状态,输入ipconfig,即可看得到本机的IP地址信息。如图:第十章第十

8、章 网络与位置地图网络与位置地图使用使用Socket进行通信进行通信使用使用Socket进行通信进行通信v 实例1:使用Socket进行服务器与客户端之间的通信l 服务器端程序u新建服务器项目pNew-Java Project,p 工程名为Socket_Server u创建包:p选择Socket_Server src,pNew-Package,p包名为.sgmsc.Socketu创建java代码文件:p选择.sgmsc.Socket,pNew-File,p程序文件名为:MyServer.java第十章第十章 网络与位置地图网络与位置地图使用使用Socket进行通信进行通信v 实例1:使用Soc

9、ket进行服务器与客户端之间的通信l 客户端程序u项目名(Android Project):Socket_Clientu客户端程序:ClientActivity.javap在连接服务器的方法中创建指定IP地址和端口号的Socket,如:Socket mysocket = new Socket(02, 8000); u权限设置p在manifest.xml文件中必须声明网络权限:第十章第十章 网络与位置地图网络与位置地图v 实例1:使用Socket进行服务器与客户端之间的通信l 运行步骤u先启动服务器端程序:p选择Socket_Server-Run As-Java Appli

10、cation,如图:u再运行客户端程序:p选择Socket_Client-Run As-Android Application,如图:使用使用Socket进行通信进行通信第十章第十章 网络与位置地图网络与位置地图v Android获取网络上的资源有两种方式 l 使用URLu需要import“URL”类和“URLConnection”类,如:pimport .URL;pimport .URLConnection;l 使用HTTPu包括如下两种请求方式:pPOSTpGETv 获取网络资源,需要使用Tomcat服务器v 在AndroidManifest.xml中声明网络权限:第十章第十章 网络与位置

11、地图网络与位置地图获取网络数据资源获取网络数据资源v 在Eclipse下Tomcat设置l 确认:Eclipse是jee版。l 下载Tomcat7.0.11压缩包,并解压。l 在Eclipse中设置Tomcat:u菜单:File-New - Other - Server (如图);uNext,选择Apache下的“Tomcat v7.0 Server”项;uNext,指出Tomcat的安装文件夹和JRE。第十章第十章 网络与位置地图网络与位置地图获取网络数据资源获取网络数据资源v 在Eclipse下Tomcat设置l 确认:Eclipse是jee版。l 下载Tomcat7.0.11压缩包,并解

12、压。l 在Eclipse中设置Tomcat。l 配置Tomcat:u在Eclipse的DDMS页中,u菜单:Window-Show View-Otheru进入Show View对话框中选择Server下的“Server”,如图;u双击“Tomcat v7.0 Server at localhost”打开此窗口,进行相关属性设置。第十章第十章 网络与位置地图网络与位置地图获取网络数据资源获取网络数据资源p选择“Use Tomcat installation(takes control of Tomcat installation)”;p选择“Publish module contexts to

13、separate XML files”,v 在Eclipse下Tomcat设置l 确认:Eclipse是jee版。l 下载Tomcat7.0.11压缩包,并解压。l 在Eclipse中设置Tomcat。l 配置Tomcat。l 启动Tomcat:u在DDMS页的Server窗口,u或在Java页中下部的Server窗口(如图),均可启动。第十章第十章 网络与位置地图网络与位置地图获取网络数据资源获取网络数据资源v 通过URL获取网络资源l 实例2:通过URL获取服务器中的一个txt文本文件和一个png图片文件,并显示在手机屏幕上。u准备Tomcat服务器端文件:p在Tomcat的webapps

14、文件夹中创建文件夹:MyURLFiles;p分别将一个txt文本文件和一个png图片文件复制到新建的文件夹MyURLFiles中。u本机的IP地址:02。uTomcat服务器端口号为:8080。u项目名:GetURLMsg。u在AndroidManifest.xml中声明网络权限。u执行应用程序前必须将Tomcat服务器打开。u执行结果如图:第十章第十章 网络与位置地图网络与位置地图获取网络数据资源获取网络数据资源v 通过HTTP获取网络资源l POST传送方式u传送的变量名/变量值则是放在实际的HTTP请求消息内部被传送,用户看不到这个过程。u使用这种方式传送的数据量较

15、大,且安全性较高。l GET传送方式u传送的变量名/变量值是作为URL的一部分被传送,在URL中可以看到。u使用这种方式传送的数据量较小,且安全性非常低。l 使用GET、POST常需要用到org.apache.http包下的类,其中重要的类如:HttpGet、HttpPost。第十章第十章 网络与位置地图网络与位置地图获取网络数据资源获取网络数据资源v 通过HTTP获取网络资源l 使用HttpGet或HttpPost对象访问HTTP资源的步骤u 创建HttpGet或HttpPost对象,将要请求的URL通过构造方法传入HttpGet或HttpPost对象。u 使用DefaultHttpClie

16、nt类的execute()方法发送HTTP GET或HTTP POST请求,并返回HttpResponse对象。u 通过HttpResponse接口的getEntity()方法返回响应信息,并进行相应的处理。l HTTP GET请求和HTTP POST请求在实际编程中是有区别的。u创建HTTP POST请求后必须设置HTTP POST请求参数。u设置HTTP POST请求参数必须用NameValuePair对象。第十章第十章 网络与位置地图网络与位置地图获取网络数据资源获取网络数据资源v 实例3:分别通过GET和POST向网络发送用户名和密码,如果用户名和密码与网络上文件中的信息一致则反馈通过

17、信息,否则反馈不正确信息。l 通过GET和POST向网络服务器中发送用户名和密码,是使用该网络上一个文件来比对传来的用户名和密码是否正确。l 本例是采用存放在本机的Tomcat服务器的根目录中的文件test.jsp来存放用户名和密码信息的。l 本机的Tomcat服务器的根目录路径为E:apache-tomcat-7.0.11webappsROOT。l 本机的IP地址为02,所以这个文件的IP地址为02/test.jsp。第十章第十章 网络与位置地图网络与位置地图获取网络数据资源获取网络数据资源v 实例3:分别通过GET和POST向网络发送

18、用户名和密码,如果用户名和密码与网络上文件中的信息一致则反馈通过信息,否则反馈不正确信息。l 项目名: Get_PostConn。l 本例该文件中,用户名为“KongFu”,密码也为“KongFu”。第十章第十章 网络与位置地图网络与位置地图获取网络数据资源获取网络数据资源 v Android打开网页进行浏览的开发浏览网页浏览网页第十章第十章 网络与位置地图网络与位置地图浏览网页浏览网页v 使用Intent浏览网页l 关键代码:Uri uri = Uri.parse(http:/.hk/); Intent intent = new Intent(Intent.ACTION_VIEW,uri);

19、 startActivity(intent);l 实例4:使用Intent浏览网页u项目名: BrowserIntentu执行结果如图:第十章第十章 网络与位置地图网络与位置地图 浏览网页浏览网页v 使用WebView浏览网页l 通过WebView控件打开网页uWebView控件包含在android.webkit. WebView包下。u在布局文件中要声明一个WebView控件。ucreateSnapshot()创建当前网页的快照ugetSettings()返回用于控制设置的websetting对象uloadData()将给定的字符串数据加载到浏览器中uloadUrl()利用给定的URL加载页

20、面uStoploading()停止加载当前的页面。第十章第十章 网络与位置地图网络与位置地图浏览网页浏览网页 利用视图打开网页利用视图打开网页public class BrowserView extends Activity private EditText urlText; private Button goButton; private WebView webView; public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.mai

21、n); / Get a handle to all user interface elements urlText = (EditText) findViewById(R.id.url_field); goButton = (Button) findViewById(R.id.go_button); webView = (WebView) findViewById(R.id.web_view); / Setup event handlers goButton.setOnClickListener(new OnClickListener() public void onClick(View view) openBrowser(); ); /* O

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论