用Java实现底层网络通信_第1页
用Java实现底层网络通信_第2页
用Java实现底层网络通信_第3页
用Java实现底层网络通信_第4页
用Java实现底层网络通信_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、第二十一章第二十一章 JavaJava网络的基本知识网络的基本知识21.1使用使用URL1、Internet寻址寻址IP地址是用于惟一标识连接到地址是用于惟一标识连接到Internet的计算机的计算机的的32位数字地址。位数字地址。“IP”代表代表Internet Protocol(Internet协议协议)。2、使用、使用URL定位资源(举例说明)定位资源(举例说明)http:/ 291-294 例子例子1-321.221.2基于连接的流式套接字基于连接的流式套接字1 1、InetAddressInetAddress类类区分网络的不同节点,即不同计算机并对其寻址。区分网络的不同节点,即不同计

2、算机并对其寻址。每个每个InetAddressInetAddress对象包含对象包含IPIP地址、主机名地址、主机名等信息。等信息。提供了在程序中用主机名代替提供了在程序中用主机名代替IPIP地址,更易读。地址,更易读。 套接字(套接字(SocketSocket)是)是TCP/IPTCP/IP协议的协议的编程接口,即利用编程接口,即利用SocketSocket提供的一组提供的一组APIAPI就可以编程实现就可以编程实现TCP/IPTCP/IP协议。协议。例:给出主机名,得到该主机的例:给出主机名,得到该主机的IP地址地址import .*;public class MyIPAddress pu

3、blic static void main(String args) try if(args.length=1) InetAddress ipa=InetAddress.getByName(args0); System.out.println(Host name:+ipa.getHostName(); System.out.println(Host IP Address:+ipa.toString(); System.out.println(Local Host:+InetAddress.getLocalHost();elseSystem.out.println(“主机名作为命令行参数主机名作

4、为命令行参数);catch(UnknownHostException e) System.out.println(e.toString(); MyIPAddress.java for DOS(输入主机名:(输入主机名:)2 2、流式、流式SocketSocket的通信机制的通信机制一种基于连接的通信一种基于连接的通信可确保整个通信过程准确无误可确保整个通信过程准确无误适用于连续性实时交互的通信适用于连续性实时交互的通信连接的建立、拆除增加了程序的复杂性连接的建立、拆除增加了程序的复杂性保持连接占用系统内存等资源保持连接占用系统内存等资源流式流式SocketSocket通信过程见流程图通信过程见

5、流程图创建一个创建一个ServerSocket对象就创对象就创建了一个监听服务。建了一个监听服务。创建一个创建一个Socket对象就建立了一对象就建立了一个个Client与与Server间的连接。间的连接。 server 端端 创建创建ServerSocket对象,对象, 在某端口提供监听服务在某端口提供监听服务 等待来自等待来自Client端端 的服务请求的服务请求 接收接收Client端的请求,端的请求, 用返回的用返回的Socket建立连接建立连接 通过向通过向Socket中读写数据中读写数据 与与Client端通信端通信 关闭关闭Socket,结束与当前结束与当前Client的通信,等

6、待其他请求的通信,等待其他请求 关闭关闭ServerSocket 对象对象 结束监听服务结束监听服务 Client 端端 创建创建Socket对象,向对象,向Server的监听端口请求的监听端口请求通过通过Socket中读写数据中读写数据 来与来与Server端通信端通信 关闭关闭ocket,结束与结束与 Server端的通信端的通信 流式流式Socket 通信过程通信过程建立连接建立连接数据通信数据通信拆除连接拆除连接3、Socket类与类与ServerSocket类类ServerSocket MyListener=new ServerSocket(8000);不同的端口号可以提供不同的服务

7、不同的端口号可以提供不同的服务可用端口(可用端口(102465535)随时监听可能的随时监听可能的Client请求请求Socket LinkSocket=MyListener.accept( );利用利用Socket对象向远端的对象向远端的Client读写数据读写数据LinkSocket.getInputStream(); /或或 getOutputStream( )结束监听结束监听MyListener.close( ); 实现流式实现流式Socket通信的通信的Client端与端与Server端编程端编程举例:举例:1、P296 例子例子4 Client.java /Server.java2

8、、利用回调技术编写客户机、利用回调技术编写客户机/服务器程序服务器程序 ServerClient.javaClient端请求服务,建立连接端请求服务,建立连接Socket MySocket=new Socket(“ServerComputerName”,8000);传递数据传递数据OutputStream SocketOs=MySocket.getOutputStream( );通信结束,拆除连接通信结束,拆除连接LinkSocket.close();MySocket.close( );21.3 无连接的数据报无连接的数据报(UDP)1、DatagramPacket类类2、DatagramSo

9、cket类类 无连接的远程通信服务(无连接的远程通信服务(E-mail)以包为单位发送数据以包为单位发送数据不保证传送的顺序和内容的准确性不保证传送的顺序和内容的准确性简单、占用系统资源少简单、占用系统资源少用于读取数据等信息:用于读取数据等信息:public DatagramPacket(byte ibuf ,int ilength);/接收接收 public DatagramPacket(byte ibuf ,int ilength,InetAddress iaddr,int iport);/发送发送用于创建数据报:用于创建数据报:public DatagramSocket( );/在任意

10、端口创建数据报在任意端口创建数据报 public DatagramSocket(int port);/指定端口指定端口 public DatagramSocket(int port,InetAddress localAddr); /在多在多IP地址主机上,使用指定地址主机上,使用指定IP创建数据报创建数据报Socket3、发送和接收方法、发送和接收方法DatagramSocket类中实现数据报传送和接类中实现数据报传送和接收的两个重要方法:收的两个重要方法:public synchronized void receive (DatagramPacket p) throws IOExceptio

11、n使程序的线程一直处于阻塞状态,直至从当前使程序的线程一直处于阻塞状态,直至从当前Socket中接受到数据报文、发送者等信息,将中接受到数据报文、发送者等信息,将接收的信息存储在接收的信息存储在 p 中。中。应设置超时参数,以防当读不到数据时,线程应设置超时参数,以防当读不到数据时,线程死掉。死掉。 public void send(DatagramPacket p) throws IOException将将 p 中包含的数据报文发送到所指定的中包含的数据报文发送到所指定的IP地址地址主机的指定端口。主机的指定端口。4、UDP的编程实现的编程实现 发送步骤发送步骤 接收步骤接收步骤 接收到的信息有接收到的信息有创建创建DatagramPacket对象(数据、长度、目的地)对象(数据、长度、目的地)在指定的或可用的本机端口创建在指定的或可用的本机端口创建DatagramSocket对象对象调用该调用该DatagramSocket的的send( )方法,以方法,以DatagramPacket对象为参数发送数据报对象为参数发送数据报创建一个用于接受数据报的创建一

温馨提示

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

评论

0/150

提交评论