
Java网络编程
Java网络编程

任务:理解网络的基本概念;·掌握URL类、URLconnection类、InetAddress类的用法;·理解什么是流套接字,并利用Socket类和ServerSocket类实现流套接字编程;,理解什么是数据报套接字,并利用Java语言提供的UDP编程机制实现数据报套接字编程2
2 任务 : • 理解网络的基本概念; • 掌握URL类、URLconnection类、InetAddress 类的用法; • 理解什么是流套接字,并利用Socket类和 ServerSocket类实现流套接字编程; • 理解什么是数据报套接字,并利用Java语言 提供的UDP编程机制实现数据报套接字编程

Java与网络Java语言取得成功的领域之一就是网络(其他语言)数页代码-->(Java)一条语句TCP/IP(传输控制协议/网间协议)是Internet的主要协议,定义了计算机和外设进行通信所使用的规则应用层,传输层,网络层,链路层)大多数基于Internet的应用程序被看作TCP/IP协议的上一层.如:ftp,http,smtp,pop3,telnet等IP地址:TCP/IP网络中的每台计算机都有唯一的地址--IP地址·在Java中,有一个用来存储Internet地址的类叫InetAddress
3 Java与网络 • Java语言取得成功的领域之一就是网络 • (其他语言)数页代码->(Java)一条语句 • TCP/IP(传输控制协议/网间协议)是Internet的主要 协议,定义了计算机和外设进行通信所使用的规 则(应用层,传输层,网络层,链路层). • 大多数基于Internet的应用程序被看作TCP/IP协议 的上一层. 如 : ftp, http, smtp, pop3, telnet等 • IP地址:TCP/IP网络中的每台计算机都有唯一的地 址-IP地址. • 在Java中,有一个用来存储Internet地址的类叫 InetAddress

Java与网络例:获取本机的IP地址import java.net.*;public class GetLocalHostTest( public static void main() InetAddress mylP=null;try (mylP=lnetAddress.getLocalHost();catch(UnknownHostException e)0)System.out.println(mylP);人创建inetAddress类不用构造函数(不用new)4
4 Java与网络 • 例:获取本机的IP地址 import java.net.*; public class GetLocalHostTest { public static void main() { InetAddress myIP=null; try {myIP=InetAddress.getLocalHost();} catch(UnknownHostException e){} System.out.println(myIP); } } 创建inetAddress类不用构造函数(不用new)

Java与网络下面的例子演示Java如何根据域名自动到DNS上查找IP地址(与DNS服务器的连接减至一行import java.net.*;public class GetiP( public static void main(String args[l)( InetAddress zust=null;try( zust=InetAddress.getByName("www.zust.edu.cn");Jcatch(UnknowHostException e) System.out.println(zust);)人5
5 Java与网络 下面的例子演示Java如何根据域名自动到DNS 上查找IP地址(与DNS服务器的连接减至一行) import java.net.*; public class GetIP { public static void main(String args[]) { InetAddress zust=null; try{ zust= InetAddress.getByName(“www.zust.edu.cn”); }catch(UnknowHostException e) {} System.out.println(zust); } }

Java与网络,Java提供的网络功能有三大类:URL,SocketDatagram.URL是三大功能中最高级的一种,通过URLJava程序可以直接送出或读入网络上的数据Socket是传统网络程序最常用的方式,可以想象为两个不同的程序通过网络的通信信道Datagram是更低级的网络传输方式,它把数据的自的纪录在数据包中,然后直接放在网络上6
6 Java与网络 • Java提供的网络功能有三大类: URL, Socket, Datagram. • URL是三大功能中最高级的一种,通过URL Java程序 可以直接送出或读入网络上的数据. • Socket是传统网络程序最常用的方式,可以想象为 两个不同的程序通过网络的通信信道. • Datagram是更低级的网络传输方式,它把数据的目 的纪录在数据包中,然后直接放在网络上

Java基本的网络功能URL类及其使用URL连接(URLconnection类)InetAddress类7
7 Java基本的网络功能 • URL类及其使用 • URL连接(URLconnection类) • InetAddress类

URL类及其使用,通过URL读取WWW服务器上的数据·将URL位置的数据转成一个数据流- URL url=new URL("http://www.google.com"- DatalnputStream data=newDatalnputStream(url.openStreamO)·从数据流中读出数据- String line=data.readLine()- while ( line ! =null ) line=data.readLine(8
8 URL类及其使用 • 通过URL读取WWW服务器上的数据 • 将URL位置的数据转成一个数据流 – URL url=new URL(“http://www.google.com”) – DataInputStream data=new DataInputStream(url.openStream()); • 从数据流中读出数据 – String line=data.readLine() – while(line!=null) line=data.readLine()

URL连接(URLconnection类)1URL双向通信(URLConection)URLConnection是一个以http为中心的类1.建立连接URL url=new URL("http://www.yahoo.com/"):URLConnection con=url.openConnection(:2.向服务器端送数据PrintStream outStream=newPrintStream(con.getOutputStreamO)outStream.println(string_data);9
9 URL连接(URLconnection类)1 • URL双向通信(URLConection) • URLConnection是一个以http为中心的类 1. 建立连接 URL url=new URL(“http://www.yahoo.com/”); URLConnection con=url.openConnection(); 2. 向服务器端送数据 PrintStream outStream=new PrintStream(con.getOutputStream()); outStream.println(string_data);

URL连接(URLconnection类)23.从服务器读数据DatalnputStream inStream=newDatalnputStream(con.getlnputStream():inStream.readLine();·从URL中得到的输出流通常与一个CGI程序结合一起工作10
10 URL连接(URLconnection类)2 3. 从服务器读数据 DataInputStream inStream=new DataInputStream(con.getInputStream()); inStream.readLine(); • 从URL中得到的输出流通常与一个CGI程序 结合一起工作