Java实用编程技术 工业和信息化普通高等教育“十二五”规划教材立项项目 教学课件 ppt 作者 王诚 第7章 Java网络编程

上传人:E**** 文档编号:89542145 上传时间:2019-05-27 格式:PPTX 页数:43 大小:158.05KB
返回 下载 相关 举报
Java实用编程技术 工业和信息化普通高等教育“十二五”规划教材立项项目  教学课件 ppt 作者  王诚 第7章 Java网络编程_第1页
第1页 / 共43页
Java实用编程技术 工业和信息化普通高等教育“十二五”规划教材立项项目  教学课件 ppt 作者  王诚 第7章 Java网络编程_第2页
第2页 / 共43页
Java实用编程技术 工业和信息化普通高等教育“十二五”规划教材立项项目  教学课件 ppt 作者  王诚 第7章 Java网络编程_第3页
第3页 / 共43页
Java实用编程技术 工业和信息化普通高等教育“十二五”规划教材立项项目  教学课件 ppt 作者  王诚 第7章 Java网络编程_第4页
第4页 / 共43页
Java实用编程技术 工业和信息化普通高等教育“十二五”规划教材立项项目  教学课件 ppt 作者  王诚 第7章 Java网络编程_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《Java实用编程技术 工业和信息化普通高等教育“十二五”规划教材立项项目 教学课件 ppt 作者 王诚 第7章 Java网络编程》由会员分享,可在线阅读,更多相关《Java实用编程技术 工业和信息化普通高等教育“十二五”规划教材立项项目 教学课件 ppt 作者 王诚 第7章 Java网络编程(43页珍藏版)》请在金锄头文库上搜索。

1、Java网络编程,Java实用编程技术,TCP(Transmission Control Protocol),指的是传输控制协议,它是主要负责数据的分组和重组。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能 TCP是一个“可靠的”、面向连结的传输机制,通过三次握手建立连接。它提供一种可靠的字节流保证数据完整、无损并且按顺序到达,TCP协议,Java实用编程技术,UDP(User Datagram Protocol)指的是用户数据报协议。和TCP一样都是网络传输层上的协议,但与TCP有本质的区别 UDP是“不可靠”、无连结和面向消息的协议,它使用数据报进行传输,UDP协议,Jav

2、a实用编程技术,端口(Port)可以被理解成计算机与外界通信交流的窗户。网络上的一台计算机可以提供多种服务,单靠IP地址无法将它们区别开,所以通过“IP地址+端口号”的形式来区分不同的服务 端口号是一个整数,通常范围在065535。小于1024的端口号一般的分配给特定的服务协议的,端口,Java实用编程技术,套接字,是支持TCP/IP的网络通信的基本操作单元,可以看成在两个程序进行通讯连接中的一个端点,是连接应用程序和网络驱动程序的桥梁,Socket在应用程序中创建,通过绑定与网络驱动建立关系 通常用的TCP/IP协议的3种套接字类型有 流套接字(SOCK_STREAM)、数据报套接字(SOC

3、K_DGRAM)、原始套接字(SOCK_RAW) 流套接字用于提供面向连接、可靠的数据传输服务 数据报套接字(SOCK_DGRAM):数据报套接字提供了一种无连接的服务 原始套接字(SOCK_RAW):原始套接字可以读写内核没有处理的IP数据包,套接字,Java实用编程技术,C/S(Client/Server,客户机/服务器)模式又称C/S结构,是20世纪80年代末逐步成长起来的一种模式,是软件系统体系结构的一种 C/S结构的关键在于功能的分布,一些功能放在前端机(即客户机)上执行,另一些功能放在后端机(即服务器)上执行 在 Berkeley 套接字中,套接字的概念允许单个计算机同时服务于很多

4、不同的客户,并能够提供不同类型信息的服务 客户机/服务器的通信基于套结字。套结字是internet通信的端点。可以理解为是客户机和服务器之间的两端,客户/服务器模式,Java实用编程技术,Java 通过扩展流式输入/输出接口和增加在网络上建立输入/输出对象特性这两个方法支持 TCP/IP Java 支持TCP和UDP协议族 Java提供的网络功能有三大类:URL、Socket、Datagram TCP用于网络的可靠的流式输入/输出。UDP支持更简单的、快速的、点对点的数据报模式,JAVA和网络,Java实用编程技术,JAVA和网络,Java实用编程技术,JAVA和网络,Java实用编程技术,I

5、netAddress类用来封装数字式的 IP 地址和该地址的域名 InetAddress 类可以用于标识网络上的硬件资源,建立IP地址。把IP地址或是Domain Name转换成电脑看得懂的网络地址 InetAddress 类没有明显的构造方法。为生成一个 InetAddress 对象,必须运用一个可用的工厂方法,InetAddress 类,Java实用编程技术,InetAddress 类,Java实用编程技术,InetAddress 类,Java实用编程技术,import .*; public class Test public static void main(String args) t

6、hrows UnknownHostException InetAddress Address = InetAddress.getLocalHost(); System.out.println(Address); Address = InetAddress.getByName(““); System.out.println(Address); InetAddress ia = InetAddress.getAllByName(“www. “); for (int i=0; i ia.length; i+) System.out.println(iai); ,InetAddress 类,Java实

7、用编程技术,InetAddress 类,Java实用编程技术,URL 提供了一个相当容易理解的形式来惟一确定或对 Internet 上的信息进行编址 在 Java 的网络类库中,URL 类为用URL在Internet 上获取信息提供了一个简单的、简洁的用户编程接口(API) URL规范以四个元素为基础:所用到的协议、主机名或所用主机的IP地址、端口号、实际的文件路径,URL,Java实用编程技术,URL,Java实用编程技术,URL,Java实用编程技术,import .*; public class Test public static void main(String args) thro

8、ws MalformedURLException URL hp = new URL(“http:/ System.out.println(“Protocol: “ + hp.getProtocol(); System.out.println(“Port: “ + hp.getPort(); System.out.println(“Host: “ + hp.getHost(); System.out.println(“File: “ + hp.getFile(); System.out.println(“Ext:“ + hp.toExternalForm(); ,URL,Java实用编程技术,为

9、获 URL的实际比特或内容信息,用它的 openConnection()方法从它创建一个URLConnection对象,如下常用形式: URLConnection openConnection() 它返回一个URLConnection对象。它可能引发 IOException 异常,URL,Java实用编程技术,import .*; import java.io.*; import java.util.Date; public class Test public static void main(String args) throws Exception int c; URL hp = new

10、URL(“http:/“); URLConnection hpCon = hp.openConnection(); System.out.println(“Date: ” + new Date(hpCon.getDate(); System.out.println(“Content-Type: ” + hpCon.getContentType(); System.out.println(“Expires: “ + hpCon.getExpiration();,URL,Java实用编程技术,System.out.println(“Last-Modified: “+new Date(hpCon.g

11、etLastModified(); int len = hpCon.getContentLength(); System.out.println(“Content-Length: “ + len); if (len 0) System.out.println(“Content: “); InputStream input = hpCon.getInputStream(); int i = len; while (c = input.read() != -1) ,URL,Java实用编程技术,输出的前几行: Date: Fri Oct 06 22:11:12 CDT 2011 Content-T

12、ype: text/html Expires: 0 Last-Modified: Tue Oct 28 11:16:27 CDT 2011 Content-Length: 529 Content: myweb ,URL,Java实用编程技术,TCP/IP 套接字用于在主机和 Internet 之间建立可靠的、双向的、持续的、点对点的流式连接 对于applet程序只建立回到下载它的主机的套接字连接 Java中有两类TCP套接字。一种是服务器端的,另一种是客户端的 Socket :客户端套结字类,为建立连向服务器套接字以及启动协议交换而设计,编程模型,Java实用编程技术,生成客户套接字的两个构造

13、方法,编程模型,Java实用编程技术,编程模型,Java实用编程技术,编程模型,Java实用编程技术,ServerSocket :服务器端套结字类,设计成在等待客户建立连接之前不做任何事的“监听器” ServerSocket与通常的 Sockets类完全不同。当创建一个 ServerSocket 类,它在系统注册自己对客户连接感兴趣,编程模型,Java实用编程技术,编程模型,Java实用编程技术,编程模型,Java实用编程技术,服务器端程序实现在端口8080上监听提供服务,从客户端读入数据后再向客户端发送信息 客户端发送数据后再接收服务器数据 该实例简单地实现两者的通信 具体程序见课本相应章节

14、,实例一,Java实用编程技术,编程实现服务器端与多客户端的通信,该实例实现每当有客户请求时,就生成一个线程为之服务,该线程实现和客户端的发送接收信息服务,直到输入“Exit”为止 由服务器端组件程序、 客户端组件程序两部分构成 具体程序见课本相应章节,实例一,Java实用编程技术,对于现在的大多数网络需求,TCP/IP型网络已经基本可以满足其网络需求了。TCP包含很多在拥挤的网络中处理拥塞控制的复杂算法以及信息丢失的悲观的预测。这导致了一个效率很差的传输数据方式 数据报(Datagrams)是在机器间传递的信息包,一旦数据报被释放给它们预定的目标,不保证它们一定到达目的地,甚至不保证一定存在

15、数据的接收者。同样,数据报被接受时,不保证它在传输过程不受损坏,不保证发送它的机器仍在那儿等待响应,编程模型,Java实用编程技术,Java 通过两个类实现UDP协议顶层的数据报 DatagramPacket类:创建一个用于发送的数据报,当接收数据UDP数据报时,可以使用DatagramPacket类读取数据报中的数据,发送者和其他消息 DatagramSocket类:封装了套结字的有关信息和操作发送端,是用来发送和接受 DatagramPackets的机制,编程模型,Java实用编程技术,DatagramSocket类构造方法 public DatagramSocket() throws E

16、xcetpion public DatagramSocket(int port) throws Exception,编程模型,Java实用编程技术,DatagramPackets 可以用四个构造方法 DatagramPacket(byte data , int size) DatagramPacket(byte data , int offset, int size) DatagramPacket(byte data , int size, InetAddress ipAddress, int port) DatagramPacket(byte data , int offset, int size, InetAddress ipAddress, int port),编程模型,Java实用编程技术,Dat

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号