Java语言16(网络编程).ppt
《Java语言16(网络编程).ppt》由会员分享,可在线阅读,更多相关《Java语言16(网络编程).ppt(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第14章 网络编程14.1 URL类URL类是包中的一个重要类,URL的实例封装着一个统一资源定位符(Uniform Resource Locator),使用URL创建对象的应用程序称作客户端程序。一个URL对象封装着一个具体的资源的引用,表明客户要访问这个URL中的资源,客户利用URL对象可以获取URL中的资源。一个URL对象通常包含最基本的个部分信息:协议、地址、资源。关于协议、地址和资源协议必须是URL对象所在的java虚拟机支持的协议,常用的协议有HTTP、FTP、File协议都是虚拟机支持的协议;地址必须是能连接的有效IP地址或域名;资源可以是主机上的任何一个文件。14.1.1 UR
2、L的构造方法public URL(String spec)throws MalformedURLException例:import .*;try URL url=new URL(“http:/”);catch(MalformedURLException e)System.out.println(“Bad URL:”+url);URL的另一构造方法public URL(String protocol,String host,String file)throws MalformedURLException14.1.2 读取URL中的资源URL对象调用InputStream openStream()
3、方法可以返回一个输入流,该输入流指向URL对象所包含的资源。通过该输入流可以将服务器上的资源信息读入到客户端。URL对象调用InputStream openStream()方法可以返回一个输入流,该输入指向URL对象所包含的资源。通过该输入流可以将服务器上的资源读入到客户端。读取URL中的资源的示例代码(1)import .*;import java.io.*;import java.util.*;class Look implements Runnable URL url;public void setURL(URL url)this.url=url;public void run()try
4、 InputStream in=url.openStream();byte b=new byte1024;int n=-1;while(n=in.read(b)!=-1)String str=new String(b,0,n);System.out.print(str);catch(IOException exp)exp.printStackTrace();读取URL中的资源的示例代码(1)public class TestURLpublic static void main(String args)Scanner scanner;URL url;Thread readURL;Look loo
5、k=new Look();System.out.println(输入URL资源,例如:http:/);scanner=new Scanner(System.in);String source=scanner.nextLine();tryurl=new URL(source);look.setURL(url);readURL=new Thread(look);catch(Exception exp)System.out.println(exp);readURL=new Thread(look);readURL.start();14.2 InetAdress类14.2.1 地址的表示Interne
6、t上的主要有两种表示地址的方式:1.域名:例如,1.IP地址:例如,包中的InetAddress类对象含有一个Internet主机域名和IP地址: 获取地址1.获取Internet上的地址可以使用InetAddress类的静态方法:getByName(String s);将一个域名或IP地址传递给该方法的参数s,获得一个InetAddress对象,该对象含有主要地址的域名和IP地址,该对象用如下格式表示它包含的信息:import .*;public class TestAddress public static void main(String args)try InetAddress add
7、ress_1=InetAddress.getByName();System.out.println(address_1.toString();InetAddress address_2=InetAddress.getByName(166.111.222.3);System.out.println(address_2.toString();catch(UnknownHostException e)System.out.println(无法找到 );InetAddress其它常用方法public String getHostName():获取InetAddress对象所含有的域名。public S
8、tringHostAddress():获取InetAddress对象所含的IP地址。public static InetAdress getLoalHost()获得含有本地机的域名和地址的InetAddress的对象。14.3 套接字Scoket2.获取本地机的地址getLocalHost():可获得一个InetAddress对象,该对象含有本地机的域名和IP地址。14.3.1 套接字网络通信使用IP地址标识Inernet上的计算机,使用端口号标识服务器上的进程(程序)。如果服务器上的一个程序不占用端口号,用户程序就无法找到它,就无法和该程序交互信息。端口与被规定为一个16位的整数,其中,0-
9、1023被预告定义的服务通信占用。当两程序需要通信时,它们可以通过使用Socket类建立套接字对象并连接在一起。14.3.2 客户端套接字客户端的程序使用Socket类建立负责连接到服务器的套接字对象。Socket的构造方法是 Socket Socket(String host,int port)参数host是服务器的IP地址。port是一个端口号。建立套接字对象可能发生IOExcepion异常。客户端的数据接收与发送使用套接字对象的getInputStream()方法可以获得一个输入流,客户端用这个输入流读取服务器端发来的数据。使用套接字对象的getOutputStream()方法可获得一个
10、输出流,客户端用这个输出流向服务器端发送数据。14.3.3 服务器端套接字为了能使客户端成功地连接到服务器,服务器建立一个ServerSocket对象,该对象通过将客户端的套接字对象和服务器端的一个套接字对象连接起来,达到连接的目的。ServerSocket的构造方法ServerSocket(int port)port是一个端口号。当建立ServerSocket对象时可能发生IOException异常。try ServerSocket serverForClient=new ServerSocket(2010);catch(IOException e)ServerSocket的accept()
11、方法当服务器的ServerSocket对象建立后,就可以使用accept()方法将客户的套接字和服务器端的套接字连接起来。如果没有客户端的连接请求accept()方法会堵塞线程的继续执行。直到接到某个客户的请求为止。为了避免长时间的阻塞,服务器端可以使用setSoTimeout(int timeout)方法,在堵塞时间超过timeout时,捕获SocketTimeoutException来终止堵塞。try Socket sc=severForClient.accept();catch(IOException e)System.out.println()获得输入、输出流驻留在服务器端和客户端的S
12、ocket对象调用getOutputStream()及getInputStream()获得输出及输入流。通过这两个流可以实现服务器端和客户的数据交换。简单网络通信实例(客户端)import java.io.*;import .*;public class Client1 public static void main(String args)String mess=+2什么情况下不等于3?,一周有几天?,什么东西能看,能吃,能坐?;Socket mysocket;DataInputStream in=null;DataOutputStream out=null;try mysocket=new
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 语言 16 网络 编程
限制150内