第8章网络功能 北京大学计算机系 代亚非
第8章网络功能 北京大学计算机系 代亚非
第8章网络功能 8.1Java与 internet 8.2使用URL 83访问cgi 84URL连接 8.5 Socket 86 internet应用 87数据报 8. 8 JDBC 89小结
2 第 8章网络功能 8.1 Java 与internet 8.2 使用URL 8.3 访问cgi 8.4 URL连接 8.5 Socket 8.6 internet应用 8.7 数据报 8.8 JDBC 8.9 小结
81Java与网络 Jav语言取得成功的领域之一就是网络 (其他语言)数页代码-->(Java)条语句 TCP/P(传输控制协议/网间协议)是 internet的主 要协议,定义了计算机和外设进行通信所使用的 规则(应用层传输层,网络层,链路层) 大多数基于 internet的应用程序被看作TCPP协 议的上一层.如:ftp,ht,smtp,pop3, telnet, nnt等 IP地址:TCP/P网络中的每台计算机都有唯一的 地址-IP地址 在Java中,有一个用来存储 internet地址的类叫 Inetaddress
3 8.1 Java与网络 Java语言取得成功的领域之一就是网络 (其他语言)数页代码---->(Java)一条语句 TCP/IP(传输控制协议/网间协议)是internet的主 要协议,定义了计算机和外设进行通信所使用的 规则(应用层,传输层,网络层,链路层). 大多数基于internet的应用程序被看作TCP/IP协 议的上一层. 如 : ftp, http, smtp, pop3, telnet, nntp等 IP地址:TCP/IP网络中的每台计算机都有唯一的 地址--IP地址. 在Java中,有一个用来存储internet地址的类叫 InetAddress
81Java与网络 例:获取本机的I地址 import java. net. *i public class getlocalHostTest i public static void maino i InetAddress myIP=null; try (mylP=InetAddress.getLocalHosto; catch(UnknowHostException e)t System, out. println(myIp); 创建 inetaddress类不用构造函数(不用new)
4 8.1 Java与网络 例:获取本机的IP地址 import java.net.*; public class getLocalHostTest { public static void main() { InetAddress myIP=null; try {myIP=InetAddress.getLocalHost();} catch{UnknowHostException e){} System.out.println(myIP); } } 创建inetAddress类不用构造函数(不用new)
81Java与网络 下面的例子演示java如何根据域名自动到DNS 上查找P地址(与DNS服务器的连接减至一行) import java. net.兴; public class getUP i public static void main(String argsl iNetaDdress pku=null; tryi pku InetAddressgetByName(“www.pku.edu.cn”); )catch(UnknowHostException e)t ystem,out.printIn(pku
5 8.1 Java与网络 下面的例子演示java如何根据域名自动到DNS 上查找IP地址(与DNS服务器的连接减至一行) import java.net.*; public class getIP { public static void main(String args[]) { InetAddress pku=null; try{ pku= InetAddress.getByName(“www.pku.edu.cn”); }catch(UnknowHostException e) {} System.out.println(pku); } }
81Java与网络 Java提供的网络功能有三大类:URL, Socket, Datagram URL是三大功能中最高级的一种通过URL Java程序可以直接送出或读入网络上的数据 Socket是传统网络程序最常用的方式可以想象 为两个不同的程序通过网络的通信信道 Datagram是更低级的网络传输方式,它把数据 的目的纪录在数据包中,然后直接放在网络上
6 8.1 Java与网络 Java提供的网络功能有三大类: URL, Socket, Datagram. URL是三大功能中最高级的一种,通过URL Java程序可以直接送出或读入网络上的数据. Socket是传统网络程序最常用的方式,可以想象 为两个不同的程序通过网络的通信信道. Datagram是更低级的网络传输方式,它把数据 的目的纪录在数据包中,然后直接放在网络上
82使用URL 823通过URL读取Www服务器上的数据 将URL位置的数据转成一个数据流 URL reNew Chttp://www.pku.edu.cn/index.html DataInputstream data=new DataInputstream(url.open Stream) 从数据流中读出数据 String line=data. readlineo while (line! =null) line=data. readLineo DataInputstream URL Java程序
7 URL Java 程序 DataInputStream 8.2 使用URL 8.2.3 通过URL读取WWW服务器上的数据 将URL位置的数据转成一个数据流 URL url=new (http://www.pku.edu.cn/index.html” DataInputStream data=new DataInputStream(url.openStream()); 从数据流中读出数据 String line=data.readLine() while(line!=null) line=data.readLine()
8 http://www.pku.edu.cn/ <body connect TextField a Frame主类 TextArea c str=a getText action line strb. readlineo URL urlnew URL(str) Button CappendText(line_str) URL url b-urL.openStreamOr DataInputStream b
8 8.2 使用URL 例:从给定的位置中读数据(ReadURLData.prj) http://www.pku.edu.cn/ connect action URL url Button Frame主类 str=a.getText() b=url.openStream() TextArea c line_str=b.readLine() c.appendText(line_str); TextField a URL url=new URL(str) DataInputStream b
public boolean action ( Event evt, Object arg) i tryi String line String str=textfield gettext; urlnew URL(Str); data=new DataInputstream(url. open Stream); while((line=data. readlineol =nut textarea appendText(ine); data close: )catch(MalformedURLException me) System, out. printIn( Error UrL); catch(IOException ie) System. out. printIn( "Error IO") return true;
9 8.2 使用URL public boolean action(Event evt, Object arg) { try{ String line; String str=textfield.getText(); url=new URL(str); data=new DataInputStream(url.openStream()); while((line=data.readLine())!=null){ textarea.appendText(line); } data.close(); }catch(MalformedURLException me){ System.out.println("Error URL"); }catch(IOException ie){ System.out.println("Error IO"); } return true; }
10 83访问cgi 起始页上的计数器及cgi程序( (script) 欢迎来访你是第囗27个来访者 你是第个 来访者 客户端 cg程序名 服务器端 num+ HTML CG程序 Img
10 欢迎来访,你是第 1 2 7 个来访者! 你是第个 来访者 客户端 HTML 服务器端 CGI程序 num+ + img cgi程序名 8.3 访问cgi 起始页上的计数器及cgi程序(script)