Java网络的基本知识.doc_第1页
Java网络的基本知识.doc_第2页
Java网络的基本知识.doc_第3页
Java网络的基本知识.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第21章 Java网络的基本知识本章重点介绍的4个重要的类:URL Socket InetAddres DatagramSocket21.1 使用URL1、Internet寻址Internet上每台计算机通过IP地址+-地标识出来,IP地址实际由32位二进制数组成,实际上表示成3个圆点间隔的4个0255的十进制数组成 eg 2 没IP就不能区分连在Internet上不同的计算机、域名好记(域名解析器DNS)2、使用URL定位资源 IP地址惟一标识Internet上的计算机。URL标识这些计算机上的资源,充当 一个指向资源的指针URL:统一资源定位器:服务使用的协议计算机的域名地址资源(具体的网页)eg: /hotlink.html3、客户与服务器客户连接到服务器上并向服务器请求信息,服务器向客户发送信息4、一个有趣的例子Java网络API提供的基本网络类,包含在java net包URL的(资源)构造方法 public URL(String s)解释例子可在applet中连接到另外的Web页面getAppletContext().show Document(url)web页面地址解释例子21.2 套接字1、套接字 Socket 端口号标识正在计算机上运行的进程(065535)01023预先定义的服务通信占用端口号与IP地址的组合得出一个网络套接字可以把套接字连接想象成“电话呼叫”。呼叫的一方为“客户”,负责监听的一放是服务器。2、客户建立连接到服务器的套接字对象Socket的构造方法:Socket(String host, int port) 服务器的IP 端口号建立时可能发生IOExceptioneg trySorket mysocket=new Socket(“http/8”,1880)catch (IOException e) mysocket 可用getInputStream()方法获得一个输入流,然后用这个输入流读取服务器放入线路的信息,但不能读自己放入“线路”的信息mysocket可用getInputStream()方法获得一个输出流,然后用这个输出流将信息写入线路实际编程时,把mysocket使用getInputStream()获得的输入流接到另一个数据流,然后从这个数据流读服务器信息,把mysocket使用 getInputStream()获得的输出流接到另一个DataOutputStream数据流上,然后向这个数据流写入信息,发送服务器端,之所以这样是为了用数据流更好的输入/输出信息。3、ServerSocket类ServerSocket(int port) 必须与客户呼叫的端口号相同建立服务器套接字可能发生IOException 建立了服务器套接字后可用accept()方法接收客户的套接字连接呼叫,此过程也可能发生IOException异常服务器端的Socket对象使用getOutputStream()获得的输出流将指向客户端Socet对象使用getInputStream()获得的输入流。注:从套接字连接中读数据与从文件读数据有很大的不同(数据是否提前已存在)accept()方法也会等待服务器端套接字对象调用getInputStream()可获取一个InetAddress对象,其中含有客户端IP地址和域名;客户端套接字对象调用getInputStream()可获得一个含有服务器端IP地址和域名的InetAddress对象双方通信完毕后应调用close()方法关闭套接字连接解释 图21.14、把套接字连接放在一个线程中套接字连接中及到输入流和输出流操作,为了影响我们做其他的事情,应把套接字连接放在一个单独的线程中执行,服务器端收到客户的套接字会应启动一个专门为该客户服务的线程区别:小应用程序:客户端程序只能和它所驻留的服务器建立套接字连接应用程序:localhost代表本地机IP,可用个人Wed发布管理器(用wir98安装盘可按装个人wed管理器)式IIS将服务器端含有Java Applet小程序的文件夹没有wed共享21.3 InetAddress 类Internet上主机两种方式表示地址:(1)域名:eg (2)IP地址:eg:10DNS负责将域名转换为IP地址1、获取Internet上主机的地址可用InetAddress类的静态方法getByname(String s)将域名或IP传给s,将该方法返回1个 InetAddress对象,其中含有域名和IP,格式如下:域名/IP例如:/0InetAddress中含有两个实例方法:Public String getHostName():获取InetAddress中所含的域名Public String getHostAddress():获取InetAddress中所含的IP2、获取本地主机的地址用InetAddress类的静态方法 getLocalHost()获得一个InetAddress对象,该对象含有本地主机的域名和IP地址21.4 UDP数据报基于UDP的信息传递更快,但不提供可靠性保证,UDP比作邮信,不能肯定所发信件一定收到,也不能肯定信件到达顺序与发出顺序一致。基与UDP通信的基本模式:(1) 将数据打包(数据包)。热后将数据包发往目的地(2) 接收别人发来的数据包,然后查看数据包中内容1、发送数据包(1)用DatagramPacket类将数据打包DatagramPacket(byte data,int length,InetAddress address, int port) 目标地址 目标端口号DatagramPacket(byte data ,int offset, int length, InetAddress address, int port)注:public int getPort()方法可获取该数据包目标端口号,public InetAddress getAddress()可获取数据包中的数据。用DatagramSocket()创建一个对象,负责发送数据包eg DatagramSocket mail-out=new DatagramSocket() mail-out.send(data-pack)2、接收数据包(1)用DatagramSocket(int port)创建一个对象,其中purt必须与待接收的数据包端口号相同(2)使用receive(DatagramPacket pack)方法接收数据包其中 DatagramPacket构造方法为:DatagramPacket(bytedata,int length)注:1、receive方法阻塞等待2、数据包长度不超过8192K133、始发端口号,始发地址解释例子21.5 广播数据包IP地址的分类:a128 (b.c.d表示主机) A类地址 128a192 (a.b表示网络地址,c.d表示主机地址) B类地址192a: (a.b.c网络地址 d 主机地址) C类地址55 (

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论