java实用程序设计(西电版)第十一章java网络程序设计.pptVIP

  • 1
  • 0
  • 约3.29千字
  • 约 42页
  • 2018-06-30 发布于四川
  • 举报

java实用程序设计(西电版)第十一章java网络程序设计.ppt

java实用程序设计(西电版)第十一章java网络程序设计

    11.1 网络程序设计概述   Internet上的通信协议是以TCP/IP协议簇为基础的。TCP/IP协议簇通常分为4层:网络接口层、网络层、传输层和应用层,如图11-1所示。 图11-1 TCP/IP协议簇的4层模型 11.2 有连接的Socket通信   有连接的Socket通信主要使用包中的Socket类和ServerSocket类,Socket类的对象主要用于标识一个通信Socket连接的客户端和服务器端,而ServerSocket类的对象主要用于监听客户端的连接并建立通信Socket连接。   1. IP地址类InetAddress   InetAddress类在包中,用来定义一个IP地址。该类能够完成解析IP地址、查询主机名等功能。InetAddress类没有public的构造方法,一般需要通过调用该类的静态方法返回具体的InetAddress对象。InetAddress的主要接口方法及其含义如表11-1所示。   2. 有连接的通信模型   在Java中,有连接的通信采用流式I/O模型,通信模型见图11-2。   客户端Socket的典型构造方法形如:    Socket(InetAddress address,int port [,InetAddress localAddr,int localPort]) 或 Socket(String host,int port [,InetAddress localAddr,int localPort]) 图11-2 有连接的客户端/服务器通信模型   其中,address为远端IP,port为远端端口号,host为远端主机名,可选的localAddr为本地IP地址,可选的localPort为与当前Socket绑定的本地端口号。Socket类的主要接口方法及其含义如表11-2所示。ServerSocket的构造方法形如:    ServerSocket(int port [,int backlog])   3. 有连接的通信示例   在例11-3中,TCPClient与TCP-Server进行有连接的通信。在连接建立后,双方各自获得对方的IP地址字符串和端口号并在控制台显示。在获得各自I/O流之后,TCPClient接受从键盘输入的语句,并发送给TCPServer。TCPServer接收到消息后,判断其是否为“quit”命令,如果不是,则将收到的消息显示在控制台。此后,TCPServer在收到的消息之前加上字符串“Server reply:”之后,发送回TCPClient。TCPClient在接收到消息后在控制台将消息打印出来。   4. Socket选项   Socket类还有一些与Socket选项相关的接口方法,其中的一些主要方法及含义见表11-3。    11.3 无连接的Socket通信   无连接的Socket通信主要使用包中的Datagram Socket类,而被发送的数据报则是DatagramPacket类的对象。数据报是一种在网络上独立传播的包含两端地址信息的消息。数据报无法保证消息的可靠到达和及时到达,与面向连接的通信方式相比,服务质量较差但开销较小。对于不需要高质量通信服务的应用程序来说,使用无连接的数据报通信方式是简便易行的。   1. DatagramPacket类   创建DatagramPacket的目的可能有两个:使用UDP发送数据到远端机器;使用UDP从远端机器接收数据。DatagramPacket的构造方法至少都包含两个参数,其中一个是字符数组参数,用于存储UDP包的内容,另一个是数据包的长度。DatagramPacket的不同构造方法可用于发送和接收的不同场景。当构造的DatagramPacket用于接收UDP包时,则应使用以下构造方法:    DatagramPacket(byte[] buffer,int length) 其中,buffer为存放接收到的数据报的字节数组,length为接收数据的长度。当构造的DatagramPacket用于发送UDP包到一个远程主机时,则应使用以下构造方法:     DatagramPacket(byte[] buffer,int length,InetAddress dest_addr,int dest_port) 其中,buffer中保存用于填充数据报的内容,length为数据长度,dest_addr为目的主机地址,dest_port为目的端口地址。DatagramPacket类的主要接口方法及其含义如表11-4所示。   2. 无连接的通信模型   无连接的通信模型相比有连接的通信模型来说更为简单,其通信模型如图1

文档评论(0)

1亿VIP精品文档

相关文档