欢迎来到天天文库
浏览记录
ID:45755246
大小:70.04 KB
页数:29页
时间:2019-11-17
《JAVA网络的专业理解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、第18章网络木章讨论支持网络应用的java.net包。它的创建者称Java为“为网络编程”。尽管它只占Java的一小部分,与C++或FORTRAN相比,这种编程语言更有利于编写网络程序。使Java成为好的网络语言的正是jz.net包定义的类。这些类包装了由加州大学的伯克利分校的BSD引入的“套接字(socket)"范型。如果不简单介绍UNIX和BSD套接字的历史对Internet网络库的讨论就是不完整的。1&1网络基础1969年,KenThompsonfllDennisRitchie在MuirayHill,NewJersey的贝尔电话实验室开发了与C语言一致的UNIX。很多年來,UNIX的发
2、展停留在贝尔实验室和一些大学及研究机构,用特意设计的DECPDP机器运行。到了1978年,BillJoy在CalBerkeley领导了一个项目,给UNIX增添新的特性,例如虚拟内存和全屏显示功能。到了1984年早期,当Bill正准备建立SunMicrosystems,它发明/4.2BSD,即众所周知的BerkeleyUNIXo4.2BSD带有快速文件系统、可靠信号处理、进程间通信以及最重要的网络功能。最先在4.2中发现的网络支持后來成为了实际的Internet标准。Berkeley的TCP/IP实现保留了在Internet内通信的最初的标准。进程间和网络通信的套接字范型被Berkeley以外
3、的系统广泛采用。其至Window和Macintosh在2()世纪8()年代晚期也开始和“Berkeley套接字”谈话。18.1.1套接字概述网络套接字(networksocket)有一点像电源插座。网络周围的各式插头有一个标准方法传输它们的有效负载。理解标准协议的任何东西都能够插入套接字并进行通信。对于电源插座,不论你插入一个电灯或是烤箱,只要它们使用60H乙115伏电压,设备将会工作。思考一下你的用电账单是怎样生成的。在你的房子和电网支架间对能有1米的距离,经过这一米的每千瓦电都将列入账单。账单到达你的“地址”。所以,虽然电流在电源插座周围是B由流动的,你房子的所有插头都是有特定的地址的。
4、除了我们谈论的是TCP/IP包和1P地址而不是电器和街道地址外,同样的思想被应用到网络套接字。InternetProtocol(IP)是一种低级路由协议。该协议将数据分解成小包然后通过网络传到一个地址,它并不确保传输的信息包一定到达目的。传输控制协议(TCP)是-•种较高级的协议,它把这些信息包有力的捆绑在一起,在必要的时候,排序和重传这些信息包以获得可靠的数据传输。第三种协议,用户数据报协议(UDP)几乎IjTCP协议相当,并能够肓接用来支持快速的、无连接的、不可靠的信息包传输。18.1.2客户/服务器模式你经常在与网络有关的话题中听说客户/服务器(client/server)这个术语。在
5、一些产品说明中,这个概念似乎非常复朵,其实它的含义很简单。服务器(sewer)就是能够提供共亨资源的任何东西。现在有计算服务器,提供计算功能;打印服务器,管理多个打印机;磁盘服务器,提供联网的磁盘空间;以及Web服务器,用来存储网页。客户(client)是简单的任何有权访问特定服务器的实体。客户和服务器之间的连接就像电灯和电源插头的连接。房间的电源插座是服务器,电灯是客户。服务器是永久的资源,在访问过服务器Z后,客户可以自由的“拔去插头”。在Berkeley套接字中,套接字的概念允许单个计算机同时服务于很多不同的客户,并能够提供不同类型信息的服务。该种技术由引入的端口(port)处理,此端口
6、是一个特定机器上的被编号的套接字。服务器进程是在“监听”端口直到客户连到它。尽管每个客户部分是独特的,一个服务器允许在同样端口接受多个客户。为管理多个客户连接,服务器进程必须是多线程的,或者有同步输入/输出处理多路复用技术的其他方法。18.1.3保留套接字一旦连接成功,一个高级的协议跟著生效,该协议与所使用的端口有关。TCP/IP为特定协议保昭了低端的1024个端口。如果你在网络上冲浪有一些时间了,那么这中间的很多你已经很熟悉了。端口21是为FTP的,23是Telnet,25是为e-mail,79是为finger的,8()是HTTP,119是为网络新闻的——等等。下面该轮到讲述每个协议决定客
7、户如何与端口交互了。举例来说,HTTP是网络浏览器及服务器用来传输超文本网页和图像的协议。它是基本网页浏览服务器的一个非常简单的协议。下面是它的工作原理。当一个客八向一个HTTP服务器请求一个文件时,即一个点击动作,它仅仅以一种特定格式向预先指定的端口打印文件名然后读冋文件的内容。服务器同样对状态代码编号反应,告诉客户请求是否被执行以及原因。下面是一个例子。客户请求单个文件/index.html,服务器回应它
此文档下载收益归作者所有