第14章 Java网络编程.ppt
《第14章 Java网络编程.ppt》由会员分享,可在线阅读,更多相关《第14章 Java网络编程.ppt(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java网络编程nURL类nInetAddressnSocketnUDP数据包n广播数据包URL类n 包中的 URL类是对统一资源定位符(Uniform Resource Locator)的抽象,使用URL创建对象的应用程序称作客户端程序,一个URL对象存放着一个具体的资源的引用,表明客户要访问这个URL中的资源,利用URL对象可以获取URL中的资源。n一个URL对象通常包含最基本的三部分信息:协议、地址、资源。协议必须是URL对象所在的Java虚拟机支持的协议,许多协议并不为我们所常用,而常用的Http、Ftp、file协议都是虚拟机支持的协议;地址必须是能连接的有效IP地址或域名;资源可以
2、是主机上的任何一个文件。URL的构造方法public URL(String spec)throws MalformedURLException该构造方法使用字符串初始化一个URL对象,例如try url=new URL(http:/);catch(MalformedURLException e)System.out.println(Bad URL:+url);该URL对象使用的协议是“Http”协议,即用户按着这种协议和指定的服务器通信,该URL对象包含的地址是“”,所包含的资源是默认的资源(主页)。public URL(String protocol,String host,String f
3、ile)throws MalformedURLException该构造方法构造的URL对象的协议、地址和资源分别由参数protocol、host和file指定读取URL中的资源 URL对象调用 InputStream openStream()方法可以返回一个输入流,该输入流指向URL对象所包含的资源。通过该输入流可以将服务器上的资源信息读入到客户端。下面的例子1在一个文本框中输入网址,然后点击确定按钮读取服务器上的资源,由于网络速度或其它的因素,URL资源的读取可能会引起堵塞,因此,程序需在一个线程中读取URL资源,以免堵塞主线程。显示URL资源中的html文件在上面的例子1中,我们可以将ht
4、tp:/的主页的内容显示在文本区中,但是,有时候我们想看到网页的运行效果。Javax.swing包中的JEditorPane类可以解释执行html文件,也就是说,如果你把html文件读入到JEditorPane,该html文件就会被解释执行,显示在JEditorPane中,这样程序就看到了网页的运行效果。可以使用JEditorPane类的构造方法:public JEditorPane()public JEditorPane(URL initialPage)throws IOException public JEditorPane(String url)throws IOException构造J
5、EditorPane对象,后两个构造方法使用参数initialPage或url指定该对象最初显示的URL中的资源。JEditorPane对象调用 public void setPage(URL page)throws IOException法可以显示新的URL中的资源。在下面的例子2中,我们用JEditorPane对象显示网页。处理超链接当JEditorPane对象调用setEditable方法将编辑属性设为false时,不仅可以显示网页的运行效果,而且用户如果单击网页中超链接还可以使得JEditorPane对象触发HyperlinkEvent事件。程序可以通过处理HyperlinkEvent
6、事件,来显示新的URL资源。JEditorPane对象调用 addHyperlinkListener(HyperlinkListener listener)获得监视器。监视器需实现HyperlinkListener接口,该接口中的方法是:voidhyperlinkUpdate(HyperlinkEvente)在下面的例子中,当单击超链接时,JEditorPane对象将显示超链接所链接的网页。InetAdress类我们已经知道Internet上的主机有两种方式表示地址:(1)域名例如,(2)IP 地址例如,202.108.35.210 包中的InetAddress类对象含有一个Internet主
7、机地址的域名和IP地址: s);将 一 个 域 名 或 IP地 址 传 递 给 该 方 法 的 参 数 s,获 得 一 个 InetAddress对象,该对象含有主机地址的域名和IP地址,该对象用如下格式表示它包含的信息: String getHostName()取InetAddress对象所含的域名。public String getHostAddress()获取InetAddress对象所含的IP地址。2获取本地机的地址我们可以使用InetAddress类的静态方法:getLocalHost();获得一个InetAddress对象,该对象含有本地机的域名和IP地址。返回套接字Socket
8、IP地址标识Internet上的计算机,端口号标识正在计算机上运行的进程(程序)。端口号与IP地址的组合得出一个网络套接字。端口号被规定为一个16位的整数065535。其中,01023被预先定义的服务通信占用(如telnet占用端口23,http占用端口80等)。除非我们需要访问这些特定服务,否则,就应该使用102465535这些端口中的某一个进行通信,以免发生端口冲突。1套接字连接所谓套接字连接就是客户端的套接字对象和服务器端的套接字对象通过输入、输出流连接在一起,现在我们分三个步骤来说明套接字连接的基本模式。(1)服务器建立ServerSocket对象 ServerSocket对象负责等待
9、客户端请求建立套接字连接,类似邮局某个窗口中的业务员。也就是说,服务器必须事先建立一个等待客户请求建立套接字连接的ServerSocket对象。ServerSocket的构造方法是:ServerSocket(int port)当建立服务器套接字时可能发生IOException异常,因此要象下面那样建立接收客户的服务器套接字。try ServerSocket waitSocketConnection=new ServerSocket(1880);catch(IOException e)当服务器的ServerSocket对象waitSocketConnection建立后,就可以使用方法accept
10、()接受客户的套接字连接请求,代码如下所示:waitSocketConnection.accept();接收客户的套接字也可能发生IOException异常,因此要象下面那样建立接受客户的套接字。try Socket socketAtServer=waitSocketConnection.accept();catch(IOException e)所谓“接收”客户的套接字请求,就是accept()方法会返回一个Socket对象:socketAtServer,称作服务器端的套接字对象。Socket socketAtServer=waitSocketConnection.accept();Syste
11、m.out.println(“ok”)catch(IOException e)(2)客户端创建Socke对象。客户端程序可以使用Socket类创建对象,Socket的构方法是:Socket(String host,int port)参数host是服务器的IP地址,port是一个端口号。也可以使用Socket类不带参数的构造方法 public Socket()创建一个套接字对象,该对象不请求任何连接。该对象再调用 public void connect(SocketAddress endpoint)throws IOException请求和参数SocketAddress指定地址的套接字建立连接。
12、为了使用connect方 法,可 以 使 用 SocketAddress的 子 类:InetSocketAddress创建一个对象,InetSocketAddress的构造方法是:public InetSocketAddress(InetAddress addr,int port)创建Socket对象可能发生IOException异常,因此要象下面那样建立到服务器的套接字连接 try Socket socketAtClient=new Socket(“http:/192.168.0.78”,1880);catch(IOException e)客户端建立socketAtClient对象的过程就是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第14章 Java网络编程 14 Java 网络 编程
限制150内