java课件第十一章

上传人:w****i 文档编号:92221556 上传时间:2019-07-08 格式:PPT 页数:43 大小:335KB
返回 下载 相关 举报
java课件第十一章_第1页
第1页 / 共43页
java课件第十一章_第2页
第2页 / 共43页
java课件第十一章_第3页
第3页 / 共43页
java课件第十一章_第4页
第4页 / 共43页
java课件第十一章_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《java课件第十一章》由会员分享,可在线阅读,更多相关《java课件第十一章(43页珍藏版)》请在金锄头文库上搜索。

1、,1 Java网络编程,一、使用URL URL:Uniform Resource Location 格式: 协议名:主机名/目录及文件名 http:/ .URL类 对网络资源的访问进行封装,通过URL读取网络文件内容: (1)创建一个URL类型的对象 (2)利用URL的OpenStream(),获得对应的InputStream类的对象 (3)通过InputStream来读取内容 例:11-1,P293,二、用Java实现底层网络通信 1、InetAddress类 InetAddress对象中包括了IP地址、主机等信息 InetAddress对象可以让主机名代替IP 无构造方法,通过静态方法的返

2、回值创建对象 主要方法: static InetAddress getByName(String hostName) static InetAddress getByAddress(byte address) static InetAddress getLocalHost() String getHostAddress() String getHostName() byte getAddress(),用InetAddress类确定本地主机地址,用InetAddress类找出其他主机地址,根据IP查找主机名称,2、流式Socket的通信机制 TCP/IP协议,应用层,TCP,互联网层(IP),网

3、络接口层,UDP,FTP,HTTP,TELNET,面向连接的,提供差错检测和重传服务,以保证数据的可靠性,面向无连接的,只对数据做简单的封装后直接交给IP层发送,TCP特点 可靠的字节通信 在客户服务器之间支持可靠的双向字节通信 TCP处理重发包等实现问题 建立“虚拟连接” Virtual Connection 透明的把数据转换为IP数据报包 减轻程序员负担 使用流进行编程 不用处理丢失、乱序等问题,使用端口在应用程序间通信 通过端口来区分服务 165536之间的一个号码 小于1024的端口为常用协议端口 Telnet 23 SMTP 25 HTTP 80 POP3 110,TCP套接字操作

4、建立到远程主机的连接 向远程主机发送数据 从远程主机接收数据 关闭连接 服务器套接字 绑定到本地端口 接受来自于远程主机的传入连接 从本地端口解除绑定,3、Java中实现TCP编程 .Socket 编写客户软件时使用 .ServerSocket 只在编写服务器软件时使用,(1).Socket类 特点: 表示客户套接字 TCP套接字不会在多于两台机器之间通信 构造方法: Socket(String host, int port) Socket(InetAddress address, int port) 创建Socket实例: 当套接字被创建时,就与主机建立了连接 一旦建立连接,构造函数返回一个

5、Socket实例 如果远程主机不响应,构造函数被阻塞 Socket socket=new Socket(somehost,someport);,Socket对象的主要方法: 得到输入流,从而可以读取信息 getInputStream() 得到输出流,从而可以发送数据 getOutputStream() 关闭连接 close() 设置套接字选项 获取地址和端口 getInetAddress(), 得到连接服务器的地址 getLocalAddress(),得到本地的地址 getPort(), 得到连接服务器的端口 getLocalPort(), 得到本地的端口,直接建立Socket连接 获取输入、

6、输出流 根据双方的协议读取或发送数据 关闭Socket,Socket s1=new Socket(“127.0.0.1”, 8888);,BufferedReader reader=new BufferedReader(new InputStreamReader(s1.getInputStream();,System.out.println(“Results:”+reader.readLine();,s1.close();,创建TCP客户程序,(2).ServerSocket类 特点: 绑定到本机的特定的端口 可以响应多个客户的请求 不必自己创建Socket类的实例 接受客户传入的连接后,得到

7、一个Socket实例 构造方法: ServerSocket(int port) 创建Socket实例: ServerSocket myServer=new ServerSocket(8000);,ServerSocket对象的主要方法 接受客户连接 Socket accept() 关闭连接 close() 获取地址和端口 getInetAddress() 返回本地地址 getLocalPort() 返回本地端口 设置超时 setSoTimeout(int timeout),建立一个服务器Socket 指示服务器允许建立连接 获取输入、输出流 通过输入流获取客户端的请求 根据客户的请求进行相应的

8、处理 通过输出流将结果发送给客户方 关闭该Socket,ServerSocket server=new ServerSocket(8888);,Socket nextClient=server.accept();,PrintStream pout=new PrintStream(nextClient.getOutputStream();,pout.print(new java.util.Date();,in.close();,创建TCP服务程序,在指定端口上生成 ServerSocket,侦听客户端发来的请求,读取客户的请求,向客户发送数据,根据服务器所在主机的IP和port生成Socket,

9、由Socket生成输入、输出流,向服务器发送请求,从服务器接受请求,连接请求,服务响应,服务请求,客户方,服务器方,由得到的Socket实例生成输入输出流,关闭Socket,关闭Socket,异常原因 不能解析主机名 已从网络中断开连接 异常类 SocketException BindException ConnectException NoRouteToHostException InterruptedIOException 例:11-2,11-3, P296,2 多媒体编程,一、在Applet中获取声音和图像 1、在网络上获取图像 Image类 getImage()方法m 例:11-8 2

10、、在网络上获取声音 Applet类的play(URL)方法 AudioClip接口:play(),loop(),stop(),例11-9,二、java图像编程 创建一个BufferedImage对象 将所要的“画”放到这个缓冲区里 再打开一个文件,将图像流输入到这个文件,三、java声音编程 javax.sound包 例11-11,3 数据库编程, JDBC介绍 JDBC驱动分类 使用JDBC编程的步骤 实例,Java DataBase Connectivity 是一种可用于执行SQL语句的Java API 为不同的DBMS提供统一的数据库编程接口,1、JDBC介绍,背景 Java诞生后,没有

11、Java语言直接可使用的数据库访问的API 在Java程序中嵌入C语言的ODBC函数调用,使得Java的优秀特性无法发挥(平台无关、面向对象) JDK1.1,java.sql包(即JDBC API)成为Java语言的标准部件,JDBC特点 For Java SQL 层API 与数据库无关的、统一的API “编写一次,随处运行”,分类 Type1:桥驱动 Type2:本地驱动 Type3:基于中间件的驱动 Type4:基于网络协议的驱动 注意: Type1、Type2需要在客户端安装代码 Type3、Type4是纯Java驱动,2、JDBC驱动分类,Type1 即JDBC-ODBC桥,提供了经由

12、一种或多种ODBC驱动进行访问的JDBC接口。 通常的DBMS都支持微软提出的ODBC规范,因此该模式可以普遍使用,非常灵活,具有很好的代码移植性。 因为每次调用都要转换成ODBC调用,所以这种模式与其他模式相比性能最差。,Type2 使用Native API 它将JDBC调用转换为对数据库(Oracle、Sybase、Informix、DB2等)客户端接口的调用,Type3 纯Java驱动 将JDBC调用转换为中间网络协议,然后转换为DBMS协议 中间网络协议层起到一个读取数据库的中间件的作用,能够连接许多类型的数据库,因而是最灵活的JDBC模式,Type4 纯Java驱动 一般是数据库厂商

13、才能实现 直接调用DBMS(数据库管理系统)使用的网络协议,Java应用程序,JDBC API,JDBC-ODBC桥,JDBC-Native桥,JDBC-Net,Java JDBC,ODBC驱动,Native API(C),中间件服务器,数据库,客户端,步骤 加载驱动程序 DriverManager类 获取数据库连接 Connection类 创建一个数据库声明 Statement类 执行SQL语句,3、使用JDBC编程的步骤,Driver Manager,Connection,Statement,ResultSet,数据库,创建,创建,创建,建立连接,SQL语句,数据,java.sql包 Dr

14、iverManager 作用于用户和驱动程序之间。它跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立连接 驱动加载方法: (1) Class.forName(驱动类名); (2) DriverManager.registerManager(new 驱动类名(); Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver); DriverManager.RegisterManager(new com.microsoft.jdbc.sqlserver.SQLServerDriver();,Connection Connection c

15、on = DriverManager.getConnection(String url, String user, String password); url- jdbc:subprotocol:subname,Statement The object used for executing a static SQL statement and returning the results it produces ResultSet A table of data representing a database result set, which is usually generated by e

16、xecuting a statement that queries the database,加载驱动程序 Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); 获取数据库连接 Connection con = DriverManager.getConnection(“jdbc:odbc:studs”, “userID”, “Password”); 创建一个数据库声明 Statement stmt=con.createStatement(); 执行SQL语句 ResultSet rs = stmt.executeQuery(“select * from stutable”);,ResultSet类 移动 next(

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号