跨平台协议无关网络类库的设计与实现

来源:互联网 编辑: 张倩 手机版

更多信2113息请参考:http://www.linuxforum.net/books/smth/Java.AIX/00000001/很多有用的信息最近一年多来 ,在5261 Internet上出现的特4102别吸引人的事件就是Java语言和用 Java编写的浏览器 HotJava。 1991年 ,SUN MicroSystem公司的 Jame Gosling、 Bill Joe等人 ,为在电 视、控制烤面包箱等家用消费类电子产品上进行交互式操作而开发了一个名为Oak 的软件 (即一种橡树的名字 ),但当时并没有引起人们的注意 ,直到 1994年下半 年 ,Internet的迅猛发展 ,环球信息网 WWW的快速增长 ,促进了 Java语言研制的 进展 ,使得它逐渐成为 Int ernet上受欢迎的开发与编程语言 ,一些著名的计算机 公司纷纷购买了 Java语言的使用权 ,如 Mi-croSoft、 IBM、 Netscape、 Novell、 Apple、 DEC、 SGI等 ,因此 ,Java语言被美国的著名杂志 PC Magazine评为 1995 年十大优秀科技产品 ,(计算机类就此一项入选 ),随之大量出现了用 Java编写的 软件产品 ,受到工业界的重视与好评 ,认为 "Java是八十年代以来计算机界的一件 大事 ",微软总裁比尔·盖茨在悄悄地观察了一段时间后 ,不无感慨地说 :"Java是 长时间以来最卓越的程序设计语言 ",并确定微软整个软件开发的战略从 PC单机时 代向着以网络为中心的计算时代转移 ,而购买 Java则是他的重大战略决策的实施部 署。 因此 ,Java的诞生必将对整个计算机产业发生深远的影响 ,对传统的计算模型 提出了新的挑战。 SUN MicroSystem公司的总裁 Scott McNealy认为 Java为 Internet和 WWW开 辟了一个崭新的时代。 环球信息网 WWW的创始人 Berners-Lee说 :"计算机事业发展的下一个浪潮就 是 Java,并且将很快会发生的"。 看来 ,使用 Java已成大势所趋 ! MicroSoft和 IBM两大公司都计划在 Internet上销售用 Java编写的软件。 Apple、 HP、 IBM、 MicroSoft、 Novell、 SGI、 SCO、 Tandem等公司均 计划将 Java并入各自开发的操作系统 ,而负责开发并推广 Java技术的 SunSoft公 司 (这是 SUN下属的一个子公司 ),将通过颁发许可证的办法来允许各家公司把 Java虚拟机和 Jav a的 Applets类库嵌入他们开发的操作系统 ,这样各类开发人员 就能更容易地选择多种平台来使用 Java语言编程 ,不同的用户也就可以脱离 Web 浏览器来运行 Java应用程序 ,这无疑是很受广大用户欢迎的 ,也为 Java语言的应 用开拓了极为广阔的前景。 (当然 ,各类 JavaOS之间的兼容性必须得到重视 ,好在 JavaSoft已保证将监督这种兼容性 )。 另外 ,由 JavaSoft推出的完全用 Java编写的 Internet上新型浏览器HotJava, 比去年 alpha版更为实用 ,不仅能编制动态的应用软件 ,而且能编制完整的成套桌 面应用软件 ,将来还会提供更多的能帮助编制动态应用软件的模块 ,显然 ,这也是 为 Java的应用提供了有力的例证。 今年 6月 7日 ,由 SUN公司和台湾经济事务部信息发展局、台湾信息技术研 究所等单位牵头 ,成立了一个"Java联盟 ",参加的有 22个在台湾相当著名的计算 机公司 ,并在台北建立一个 "Java开发中心 ",在新竹建立一个"Java语言实验室", 以掀起台湾开发与应用 Java语言的热潮。 香港则在今年 4月就举行了全岛的 Java杯比赛 ,在计算机界掀起了学习 Java的热潮 (尤其是在大学生们中 ,出现了一批 Java迷 )。 有人预言 :Java将是网络上的 "世界语 ",今后所有的用其他语言编写的软 件统统都要用 Java语言来改写。 二、 Java语言对软件开发技术的影响 工业界不少人预言 :"Java语言的出现 ,将会引起一场软件革命 ",这是因为 传统的软件往往都是与具体的实现环境有关 ,换了一个环境就需要作一番改动 ,耗 时费力 ,而 Java语言能在执行码 (二进制码 )上兼容 ,这样以前所开发的软件就 能运行在不同的机器上 ,只要所用的机器能提供 Java语言解释器即可。 Java语言将对未来软件的开发产生影响 ,可从如下几个方面考虑 : 1软件的需求分析 :可将用户的需求进行动态的、可视化描述 ,以提供设计 者更加直观的要求。而用户的需求是各色各样的 ,不受地区、行业、部门、爱好的 影响 ,都可以用 Java语言描述清楚。 2软件的开发方法 :由于 Java语言的面向目标的特性 ,所以完全可以用 O-O 的技术与方法来开发 ,这是符合最新的软件开发规范要求的。 3 Java语言的动画效果远比 GUI技术更加逼真 ,尤其是利用 WW W提供的巨大 动画资源空间 ,可以共享全世界的动态画面的资源。 4软件最终产品 :用 Java语言 开发的软件可以具有可视化、可听化、可操 作化的效交互、动画与动作 ",要它停就停 ,要它继续就继续 ,而这是在电影与电 视播放过程中难以做到的。 5其它 :使用 Java语言对开发效益、开发价值都有比较明显的影响。 三、工业界对 Java语言的评价 1996年 5月 29~ 31日 ,在美国旧金山召开了一个全世界 Java语言开发者 大会 ,(JavaOne Developer Confer-ence),出席会议的多达 6500多人 ,来自工业 界的超过一半 ,有人评价说 :"这是近年来计算机界最 光辉的一次盛会 ",一些工 业界的老总们相当看好 Java语言 ,认为它的使用将会引起一场软件革命。从软件 的设计风格、设计方法、设计目标到设计过程 ,都会产生彻底的变革 ,"甚至会改 变此星球的生活方式 "。 在这次会上 ,Java的创始人之一 James Gosling说 :"Java不仅仅只是 applets,它能做任何事情 ",Dta咨询公司的高级软件工程师 Rich Kadel说 :"Java 不仅仅是一种程序设计语言 ,更是现代化软件再实现的基础 ;Java还是未来新型 OS的核心 ;将会出现 Java芯片 ;将构成各种应用软件的开发平台与实现环境 ,是 人们必不可少的开发工具 ,…… "。 由于各界都看好它 ,因此 ,各大公司都纷纷表示支持 Java,Inte l、 Xerox 公司声言将把 Java嵌入到他们的产品中去。就连华尔街金融界也在投入资金人力 用 Java开发电子贸易、金融软件。 所以有人说 :"现在第三方的开发商都团结在 Java大旗周围了 !",纷纷推出 用 Java开发的各种软件产品 ,以期尽快地占领市场。 四、 Java语言的应用前景 Java语言有着广泛的应用前景 ,大体上可以从以下几个方面来考虑其应用 : 1所有面向对象的应用开发 ,包括面向对象的事件描述、处理、综合等 ; 2计算过程的可视化、可操作化的软件的开发 ; 3动态画面的设计 ,包括图形图像的调用 ; 4交互操作的设计 (选择交互、定向交互、控制流程等 ); 5 Internet的系统管理功能模块的设计 ,包括 Web页面的动态设计、管理 和交互操作设计等 ; 6 Intranet(企业内部网 )上的软件开发 (直接面向企业内部用户的软件 ); 7与各类数据库连接查询的 SQL语句实现 ; 8其它应用类型的程序。 § 1.2 Java的特点 Java是一个广泛使用的网络编程语言 ,它是一种新的计算概念。 首先 ,作为一种程序设计语言 ,它简单、面向对象、不依赖于机器的结构、 具有可移植性、鲁棒性、安全性、并且提供了并发的机制、具有很高的性能。其 次 ,它最大限度地利用了网络 ,Java的小应用程序 (applet)可在网络上传输而 不受 CPU和环境的限制。另外 ,Java还提供了丰富的类库 ,使程序设计者可以很 方便地建立自己的系统。 下面我们分别从这三个方面来讨论 Java的特点 ,然后通过把 Java与 C, C++相比进一步指出它所具有的优点。 一、 Java语言 Java语言有下面一些特点 :简单、面向对象、分布式、解释执行、鲁棒、 安全、体系结构中立、可移植、高性能、多线程以及动态性。 :1.简单性 Java语言是一种面向对象的语言 ,它通过提供最基本的方法来完成指定的 任务 ,只需理解一些基本的概念 ,就可以用它编写出适合于各种情况的应用程 序。 Java略去了运算符重载、多重继承等模糊的概念 ,并且通过实现自动垃圾 收集大大简化了程序设计者的内存管理工作。另外 ,Java也适合于在小型机上运 行 ,它的基本解释器及类的支持只有 40KB左右 ,加上标准类库和线程的支持也 只有 215KB左右。库和线程的支持也只有 215KB左右。 2.面向对象 Java语言的设计集中于对象及其接口 ,它提供了简单的类机制以及动态的 接口模型。对象中封装了它的状态变量以及相应的方法 ,实现了模块化和信息 隐藏 ;而类则提供了一类对象的原型 ,并且通过继承机制 ,子类可以使用父类 所提供的方法 ,实现了代码的复用。 3.分布性 Java是面向网络的语言。通过它提供的类库可以处理 TCP/IP协议 ,用户 可以通过 URL地址在网络上很方便地访问其它对象。 4.鲁棒性 Java在编译和运行程序时 ,都要对可能出现的问题进行检查 ,以消除错误 的产生。它提供自动垃圾收集来进行内存管理 ,防止程序员在管理内存时容易 产生的错误。通过集成的面向对象的例外处理机制 ,在编译时,Java提示出可能 出现但未被处理的例外 ,帮助程序员正确地进行选择以防止系统的崩溃。另外, Java在编译时还可捕获类型声明中的许多常见错误 ,防止动态运行时不匹配问题 的出现。 5.安全性 用于网络、分布环境下的 Java必须要防止病毒的入侵。 Java不支持指针, 一切对内存的访问都必须通过对象的实例变量来实现 ,这样就防止程序员使用 "特洛伊 "木马等欺骗手段访问对象的私有成员 ,同时也避免了指针操作中容易 产生的错误。 6.体系结构中立 Java解释器生成与体系结构无关的字节码指令 ,只要安装了 Java运行时 系统 ,Java程序就可在任意的处理器上运行。这些字节码指令对应于 Java虚拟 机中的表示 ,Java解释器得到字节码后 ,对它进行转换 ,使之能够在不同的平 台运行。 7.可移植性 与平台无关的特性使 Java程序可以方便地被移植到网络上的不同机器。1653 同时 ,Java的类库中也实现了与不同平台的接口 ,使这些类库可以移植。另外, Java编译器是由 Java语言实现的 ,Java运行时系统由标准 C实现 ,这使得Java 系统本身也具有可移植性。 8.解释执行 Java解释器直接对 Java字节码进行解释执行。字节码本身携带了许多 编译时信息 ,使得连接过程更加简单。 9.高性能 和其它解释执行的语言如 BASIC、 TCL不同 ,Java字节码的设计使之能 很容易地直接转换成对应于特定CPU的机器码 ,从而得到较高的性能。 10.多线程 多线程机制使应用程序能够并行执行 ,而且同步机制保证了对共享数据 的正确操作。通过使用 多线程 ,程序设计者可以分别用不同的线程完成特定 的行为 ,而不需要采用全局的事件循环机制 ,这样就很容易地实现网络上的实 时交互行为。 11.动态性 Java的设计使它适合于一个不断发展的环境。在类库中可以自由地加入 新的方法和实例变量而不会影响用户程序的执行。并且 Java通过接口来支持 多重继承 ,使之比严格的类继承具有更灵活的方式和扩展性。 二、 Java Applet Java语言的特性使它可以最大限度地利用网络。 Ap-plet是 Jav a的小应 用程序 ,它是动态、安全、跨平台的网络应用程序。 Java Applet嵌入 HTML语 言 ,通过主页发布到 Internet。网络用户访问服务器的 Applet时 ,这些Applet 从网络上进行传输 ,然后在支持 Java的浏览器中运行。由于 Java语言的安全机 制 ,用户一旦载入 Applet,就可以放心地来生成多媒体的用户界面或完成复杂的 计算而不必担心病毒的入侵。虽然 Applet可以和图像、声音、动画等一样从网 络上下载 ,但它并不同于这些多媒体的文件格式 ,它可以接收用户的输入 ,动态 地进行改变,而不仅仅是动画的显示和声音的播放。 三、丰富的类库 Java提供了大量的类以满足网络化、多线程、面向对象系统的需要。 1.语言包提供的支持包括字符串处理、多线程处理、例外处理、数学函 数处理等 ,可以用它简单地实现Java程序的运行平台。 2.实用程序包提供的支持包括哈希表、堆栈、可变数组、时间和日期等。 3.输入输出包用统一的 "流 "模型来实现所有格式的 I/O,包括文件系统、 网络、输入 4.低级网络包用于实现 Socket编程。 5.抽象图形用户接口包实现了不同平台的计算机的图形用户接口部件 , 包括窗口、菜单、滚动条、对话框等 ,使得 Java可以移植到不同平台的机器。 6.网络包支持 Internet的 TCP/IP协议 ,提供了与 In-ternet的接口。 它支持 URL连接 ,WWW的即时访问 ,并且简化了用户 /服务器模型的程序设计。 四、 Java和 C、 C++ 对于变量声明、参数传递、操作符、流控制等 ,Java使用了和 C、 C++ 相同的传统 ,使得熟悉 C、 C++的程序员能很方便地进行编程。同时 ,Java为 了实现其简单、鲁棒、安全等特性 ,也摒弃了 C和 C++中许多不合理的内容。 1.全局变量 Java程序中 ,不能在所有类之外定义全局变量 ,只能通过在一个类中定 义公用、静态的变量来实现一个全局变量。例如 : Class GlobalVar{ public static global_var; } 在类 GlobalVar中定义变量 global_var为 public stat-ic,使得其它类 可以访问和修改该变量。 Java对全局变量进行了更好的封装。而在 C和 C++中 ,依赖于不加封装 的全局变量常常造成系统的崩溃。 2.Goto Java不支持 C、 C++中的 goto语句 ,而是通过例外处理语句 try, Catch, final等来代替 C、 C++中用 goto来处理遇到错误时跳转的情况 ,使程序更可读 且更结构化。 3.指针 指针是 C、 C++中最灵活 ,也是最容易产生错误的数据类型。由指针所进行 的内存地址操作常会造成不可预知的错误 ,同时通过指针对某个内存地址进行显 式类型转换后 ,可以访问一个 C++中的私有成员 ,从而破坏安全性 ,造成系统的 崩溃。而 Java对指针进行完全的控制 ,程序员不能直接进行任何指针操作 ,例如 把整数转化为指针 ,或者通过指针释放某一内存地址等。同时 ,数组作为类在Java 中实现 ,良好地解决了数组访问越界这一C、 C++中不作检查的错误。 4.内存管理 在 C中 ,程序员通过库函数 malloc()和 free()来分配和释放内存 , C++ 中则通过运算符 new和 delete来分配和释放内存。再次释放已释放的内存块或 未被分配的内存块 ,会造成系统的崩溃 ;同样 ,忘记释放不再使用的内存块也 会逐渐耗尽系统资源。而在 Java中 ,所有的数据结构都是对象 ,通过运算符new 为它们分配内存堆。通过new得到对象的处理权 ,而实际分配给对象的内存可能 随程序运行而改变 ,Java对此自动地进行管理并且进行垃圾收集 ,有效防止了由 于程序员的误操作而导致的错误 ,并且更好地利用了系统资源。 5.数据类型的支持 在 C、 C++中 ,对于不同的平台 ,编译器对于简单数据类型如 in t,float 等分别分配不同长度的字节数 ,例如:int在 IBM PC中为 16位 ,在 VAX-11中为 32位 ,这导致了代码的不可移植性 ,但在 Java中 ,对于这些数据类型总是分 配固定长度的位数 ,如对 int型 ,它总占 32位 ,这就保证了 Java的平台无关性。 6.类型转换 在 C、 C++中 ,可以通过指针进行任意的类型转换 ,常常带来不安全性 , 而 Java中 ,运行时系统对对象的处理要进行类型相容性检查 ,以防止不安全的 转换。 7.头文件 C、 C++中用头文件来声明类的原型以及全局变量、库函数等 ,在大的系 统中 ,维护这些头文件是很困难的。而 Java不支持头文件 ,类成员的类型和访 问权限都封装在一个类中 ,运行时系统对访问进行控制 ,防止对私有成员的操 作。同时 ,Java中用 import语句来与其它类进行通讯 ,以便使用它们的方法。 8.结构和联合 C、 C++中的结构和联合中所有成员均为公有 ,这就带来了安全性问题。 Java中不包含结构和联合 ,所有的内容都封装在类中。 9.预处理 C、 C++中用宏定义来实现的代码给程序的可读性带来了困难。在 Java 中 ,不支持宏 ,它通过关键字 final来声明一个常量 ,以实现宏定义中广泛使 用的常量定义。参考资料:http://www.linuxforum.net/books/smth/Java.AIX/00000001/,Java语言是一种新型的网2113络编程语言。它提升了应用5261程序4102的编程概念和开发思路。1653JBuilder是Java程序的主要开发工具之一。 Java语言是一种网络编程语言,它能够最大限度地利用网络资源。Java语言的applet小应用程序可以跨平台、跨系统和跨网络运行。Java语言提供了丰富的开发类库。 进行Java程序的开发,首先要需进行Java开发环境的安装和配置。 在进行Java程序设计之前,需要安装和配置J2SDK(Java Software Development Kit),可以到http://java.sun.com/download站点免费下载J2SDK的最新版本。目前最新的正式版本为J2SDK 1.4.2。下载完毕后,运行安装文件。在安装过程中,可以选择是否要安装所有的组件。 Java可以在文本编辑器里编辑,然后在命令行打开 在DOS窗口中,输入“javac”命令+文件名.java即可编译该java文件。然后再输入java+文件名。即可运行编好的java文件。 也可以在专门的java软件里编写java程序,如JCreator,JBuilder等。 建议你去下载Jdk和JBuilder,java 是从C、C++中演化过来的新东西,java是一种面向对象的编程语言,Java平台和语言最开始5261只是升阳公司在1990年12开始研究的一个内部4102项目。升阳公司的1653一个叫做帕特里克•诺顿的工程师被升阳自己开发的C和C语言编译器搞得焦头烂额,因为其中的API极其难用。帕特里克决定改用NeXT,同时他也获得了研究公司的一个叫做“Stealth计划”的项目的机会。“Stealth计划”后来改名为“Green计划”,詹姆斯•高斯林和麦克•舍林丹也加入了帕特里克的工作小组。他们和其他几个工程师一起在加利福尼亚州门罗帕克市沙丘路的一个小工作室里面研究开发新技术,瞄准下一代智能家电(如微波炉)的程序设计,升阳公司预料未来科技将在家用电器领域大显身手。团队最初考虑使用C语言,但是很多成员包括升阳的首席科学家比尔•乔伊,发现C和可用的API在某些方面存在很大问题。工作小组使用的是内嵌类型平台,可以用的资源极其有限。很多成员发现C太复杂以至很多开发者经常错误使用。他们发现C缺少垃圾回收系统,还有可移植的安全性、分布程序设计、和多线程功能。最后,他们想要一种易于移植到各种设备上的平台。根据可用的资金,比尔•乔伊决定开发一种集C语言和Mesa语言大成的新语言,在一份报告上,乔伊把它叫做“未来”,他提议升阳公司的工程师应该在C的基础上,开发一种面向对象的环境。最初,高斯林试图修改和扩展C的功能,他自己称这种新语言为C--,但是后来他放弃了。他将要创造出一种全新的语言,被他命名为“Oak”(橡树),以他的办公室外的树而命名。就像很多开发新技术的秘密的工程一样,工作小组没日没夜地工作到了1992年的夏天,他们能够演示新平台的一部分了,包括Green操作系统,Oak的程序设计语言,类库,和其硬件。最初的尝试是面向一种类PDA设备,被命名为Star7,这种设备有鲜艳的图形界面和被称为“Duke”的智能代理来帮助用户。1992年12月3日,这台设备进行了展示。同年11月,Green计划被转化成了“FirstPerson有限公司”,一个升阳公司的全资子公司,团队也被重新安排到了帕洛阿尔托。FirstPerson团队对建造一种高度互动的设备感兴趣,当时代华纳发布了一个关于电视机顶盒的征求提议书时(Requestforproposal),FirstPerson改变了他们的目标,作为对征求意见书的响应,提出了一个机顶盒平台的提议。但是有线电视业界觉得FirstPerson的平台给予用户过多地控制权,因此FirstPerson的投标败给了SGI。与3DO公司的另外一笔关于机顶盒的交易也没有成功,由于他们的平台不能在电视工业产生任何效益,公司再并回升阳公司。JAVA遭遇互联网JAVA应用1994年6、7月间,在经历了一场历时三天的头脑风暴的讨论后,约翰•盖吉、詹姆斯•高斯林、比尔•乔伊、帕特里克•诺顿、韦恩•罗斯因和埃里克•斯库米,团队决定再一次改变了努力的目标,这次他们决定将该技术应用于万维网。他们认为随着Mosaic浏览器的到来,因特网正在向同样的高度互动的远景演变,而这一远景正是他们在有线电视网中看到的。作为原型,帕特里克•诺顿写了一个小型万维网浏览器,WebRunner,后来改名为HotJava。同年,Oak改名为Java。商标搜索显示,Oak已被一家显卡制造商注册,因此团队找到了一个新名字。这个名字是在很多成员常去的本地咖啡馆中杜撰出来的。名字是不是首字母缩写还不清楚,很大程度上来说不是。虽然有人声称是开发人员名字的组合:JamesGosling(詹姆斯•高斯林)ArthurVanHoff(阿瑟•凡•霍夫)AndyBechtolsheim(安迪•贝克托克姆),或“JustAnotherVagueAcronym”(只是另外一个含糊的缩写)。还有一种比较可信的说法是这个名字是出于对咖啡的喜爱,所以以Java咖啡来命名。类文件的前四个字节如果用十六进制阅读的话,分别为CAFEBABE,就会拼出两个单词“CAFEBABE”(咖啡宝贝)。1994年10月,HotJava和Java平台为公司高层进行演示。1994年,Java1.0a版本已经可以提供下载,但是Java和HotJava浏览器的第一次公开发布却是在1995年3月23日SunWorld大会上进行的。升阳公司的科学指导约翰•盖吉宣告Java技术。这个发布是与网景公司的执行副总裁马克•安德森的惊人发布一起进行的,宣布网景将在其浏览器中包含对Java的支持。1996年1月,升阳公司成立了Java业务集团,专门开发Java技术。编辑本段语言特点Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的静态语言。当1995年SUN推出Java语言之后,全世界的目光都被这个神奇的语言所吸引。那么Java到底有何神奇之处呢?Java语言其实最早诞生于1991年,起初被称为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境。他们最初的目的只是为了开发一种独立于平台的软件技术,而且在网络出现之前,OAK可以说是默默无闻,甚至差点夭折。但是,网络的出现改变了OAK的命运。在Java出现以前,Internet上的信息内容都是一些乏味死板的HTML文档。这对于那些迷恋于WEB浏览的人们来说简直不可容忍。他们迫切希望能在WEB中看到一些交互式的内容,开发人员也极希望能够在WEB上创建一类无需考虑软硬件平台就可以执行的应用程序,当然这些程序还要有极大的安全保障。对于用户的这种要求,传统的编程语言显得无能为力。SUN的工程师敏锐地察觉到了这一点,从1994年起,他们开始将OAK技术应用于WEB上,并且开发出了HotJava的第一个版本。当SUN公司1995年正式以Java这个名字推出的时候,几乎所有的WEB开发人员都心生感叹:噢,这正是我想要的!于是Java成了一颗耀眼的明星,丑小鸭一下子变成了白天鹅www.07swz.com防采集请勿采集本网。

跨平台协议无关网络类库的设计与实现

这个是按章节来的,你自己找一下吧 第一章习题答案 1. 填空题 (1) 计算机网络按网络的覆盖范围可分为_局域网_、城域网和__广域网__。 (2) 从计算机网络组成的角度看,计算机网络从逻辑功能上可分为 通信 子网和__资源__子网。 (3) 计算机网络的

作者:蒋锦鹏;包丛笑;李星

2011年9月课程考试工程建设合同管理 B 卷 一、单项选择题 (共10题、总分20分) 1. 某建设单位于2004年3 1-5 DBCBC 6-10 DDCAD 二、名词解释题 (共2题、总分8分) 1. 风险的含义 (本题分数:4 分。) 风险是指在从事某项特定活动中因不确定性而

作者机构:清华大学电子工程系,北京,10084;清华大学网络中心,北京,10084;清华大学电子工程系,北京,10084

android 4 游戏编程入门经典 一本大概五十多块这样,黑皮。自己看着办吧~

来源:中国教育网络

c. SOKET

ISSN:1672-9781

跨平台,或者平台无关,是指程序代码在不同环境下具有完全相同的预期功能,可以互相替换。C语言的跨平台一般含义是:在指定的硬件和软件平台下能够正常编译的

年:2007

卷:000

期:002

页码:45-48页数:4

中图分类:TP3

正文语种:chi

关键词:跨平台;协议无关;网络编程接口;输入输出流;类库

摘要:虽然socket API是目前网络编程接口的事实标准,但它也存在一些的不足:接口复杂;使用不方便;协议无关性差;跨平台能力不强.针对这些问题,研究了跨平台和协议无关网络编程技术,并使用C++实现了一个跨平台协议无关网络类库.它可以同时支持Windows和Linux操作系统,支持以协议无关的方式进行网络编程,支持单播和ASM/SSM组播,支持UDP和TCP,支持基于TCP通信的标准输入输出流.通过在一个实际网络测量系统中的应用,验证了本类库达到了跨平台性和协议无关性的设计目标.

直连式存储(DAS):这是一种2113直接与主机系统相连5261接的存储设备,如作为服务器的计4102算机内部硬件1653驱动。到目前为止,DAS 仍是计算机系统中最常用的数据存储方法。DAS即直连方式存储,英文全称是Direct Attached Storage。中文翻译成“直接附加存储”。顾名思义,在这种方式中,存储设备是通过电缆(通常是SCSI接口电缆)直接到服务器的。I/O(输入/输出)请求直接发送到存储设备。DAS,也可称为SAS(Server-Attached Storage,服务器附加存储)。它依赖于服务器,其本身是硬件的堆叠,不带有任何存储操作系统。 1) 服务器在地理分布上很分散,通过SAN(存储区域网络)或NAS(网络直接存储)在它们之间进行互连非常困难时(商店或银行的分支便是一个典型的例子);2) 存储系统必须被直接连接到应用服务器(如Microsoft Cluster Server或某些数据库使用的“原始分区”)上时;3) 包括许多数据库应用和应用服务器在内的应用,它们需要直接连接到存储器上,群件应用和一些邮件服务也包括在内。典型DAS结构如图所示:对于多个服务器或多台PC的环境,使用DAS方式设备的初始费用可能比较低,可是这种连接方式下,每台PC或服务器单独拥有自己的存储磁盘,容量的再分配困难;对于整个环境下的存储系统管理,工作烦琐而重复,没有集中管理解决方案。所以整体的拥有成本(TCO)较高。目前DAS基本被NAS所代替。下面是DAS与NAS的比较。网络存储设备(NAS):NAS 是一种采用直接与网络介质相连的特殊设备实现数据存储的机制。由于这些设备都分配有 IP 地址,所以客户机通过充当数据网关的服务器可以对其进行存取访问,甚至在某些情况下,不需要任何中间介质客户机也可以直接访问这些设备。 同普通电脑类似,NAS产品也都具有自己的处理器(CPU)系统,来协调控制整个系统的正常运行。其采用的处理器也常常与台式机或服务器的CPU大体相同。目前主要有以下几类。(1)Intel系列处理器(4)AMD系列处理器(5)PA-RISC型处理器(6)PowerPC处理器(7)MIPS处理器一般针对中小型公司使用NAS产品采用AMD的处理器或Intel PIII/PIV等处理器。而大规模应用的NAS产品则使用Intel Xeon处理器、或者RISC型处理器等。但是也不能一概而论,视具体应用和厂商规划而定。 预制操作系统是指NAS产品出厂时随机带的操作系统或者管理软件。目前NAS产品一般带有以下几种系统软件。精简的WINDOWS2000系统这类系统只是保留了WINDOWS2000 SERVER系统核心网络中最重要的部分,能够驱动NAS产品正常工作。我们可以把它理解为WINDOWS2000的“精简版”。FreeBSD嵌入式系统FreeBSD是类UNIX系统,在网络应用方面具备极其优异的性能。Linux嵌入式系统Linux系统类似于UNIX操组系统,但相比之下具有界面友好、内核升级迅速等特点。常常用来作为电器等产品的嵌入式控制系统。 网络管理,是指网络管理员通过网络管理程序对网络上的资源进行集中化管理的操作,包括配置管理、性能和记账管理、问题管理、操作管理和变化管理等。一台设备所支持的管理程度反映了该设备的可管理性及可操作性。一般的网络满足SNMP MIB I / MIB II统计管理功能。常见的网络管理方式有以下几种:(1)SNMP管理技术(2)RMON管理技术(3)基于WEB的网络管理SNMP是英文“Simple Network Management Protocol”的缩写,中文意思是“简单网络管理协议”。SNMP首先是由Internet工程任务组织(Internet Engineering Task Force)(IETF)的研究小组为了解决Internet上的路由器管理问题而提出的。SNMP是目前最常用的环境管理协议。SNMP被设计成与协议无关,所以它可以在IP,IPX,AppleTalk,OSI以及其他用到的传输协议上被使用。SNMP是一系列协议组和规范(见下表),它们提供了一种从网络上的设备中收集网络管理信息的方法。SNMP也为设备向网络管理工作站报告问题和错误提供了一种方法。目前,几乎所有的网络设备生产厂家都实现了对SNMP的支持。领导潮流的SNMP是一个从网络上的设备收集管理信息的公用通信协议。设备的管理者收集这些信息并记录在管理信息库(MIB)中。这些信息报告设备的特性、数据吞吐量、通信超载和错误等。MIB有公共的格式,所以来自多个厂商的SNMP管理工具可以收集MIB信息,在管理控制台上呈现给系统管理员。通过将SNMP嵌入数据通信设备,如交换机或集线器中,就可以从一个中心站管理这些设备,并以图形方式查看信息。目前可获取的很多管理应用程序通常可在大多数当前使用的操作系统下运行,如Windows3.11、Windows95 、Windows NT和不同版本UNIX的等。一个被管理的设备有一个管理代理,它负责向管理站请求信息和动作,代理还可以借助于陷阱为管理站提供站动提供的信息,因此,一些关键的网络设备(如集线器、路由器、交换机等)提供这一管理代理,又称SNMP代理,以便通过SNMP管理站进行管理。 网络协议即网络中(包括互联网)传递、管理信息的一些规范。如同人与人之间相互交流是需要遵循一定的规矩一样,计算机之间的相互通信需要共同遵守一定的规则,这些规则就称为网络协议。一台计算机只有在遵守网络协议的前提下,才能在网络上与其他计算机进行正常的通信。网络协议通常被分为几个层次,每层完成自己单独的功能。通信双方只有在共同的层次间才能相互联系。常见的协议有:TCP/IP协议、IPX/SPX协议、NetBEUI协议等。在局域网中用得的比较多的是IPX/SPX.。用户如果访问Internet,则必须在网络协议中添加TCP/IP协议。TCP/IP是“transmission Control Protocol/Internet Protocol”的简写,中文译名为传输控制协议/互联网络协议)协议, TCP/IP(传输控制协议/网间协议)是一种网络通信协议,它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据往来格式以及传送方式。TCP/IP是INTERNET的基础协议,也是一种电脑数据打包和寻址的标准方法。在数据传送中,可以形象地理解为有两个信封,TCP和IP就像是信封,要传递的信息被划分成若干段,每一段塞入一个TCP信封,并在该信封面上记录有分段号的信息,再将TCP信封塞入IP大信封,发送上网。在接受端,一个TCP软件包收集信封,抽出数据,按发送前的顺序还原,并加以校验,若发现差错,TCP将会要求重发。因此,TCP/IP在INTERNET中几乎可以无差错地传送数据。 对普通用户来说,并不需要了解网络协议的整个结构,仅需了解IP的地址格式,即可与世界各地进行网络通信。IPX/SPX是基于施乐的XEROX’S Network System(XNS)协议,而SPX是基于施乐的XEROX’S SPP(Sequenced Packet Protocol:顺序包协议)协议,它们都是由novell公司开发出来应用于局域网的一种高速协议。它和TCP/IP的一个显著不同就是它不使用ip地址,而是使用网卡的物理地址即(MAC)地址。在实际使用中,它基本不需要什么设置,装上就可以使用了。由于其在网络普及初期发挥了巨大的作用,所以得到了很多厂商的支持,包括microsoft等,到现在很多软件和硬件也均支持这种协议。NetBEUI即NetBios Enhanced User Interface ,或NetBios增强用户接口。它是NetBIOS协议的增强版本,曾被许多操作系统采用,例如Windows for Workgroup、Win 9x系列、Windows NT等。NETBEUI协议在许多情形下很有用,是WINDOWS98之前的操作系统的缺省协议。总之NetBEUI协议是一种短小精悍、通信效率高的广播型协议,安装后不需要进行设置,特别适合于在“网络邻居”传送数据。所以建议除了TCP/IP协议之外,局域网的计算机最好也安上NetBEUI协议。另外还有一点要注意,如果一台只装了TCP/IP协议的WINDOWS98机器要想加入到WINNT域,也必须安装NetBEUI协议。 网络文件系统是基于网络的分布式文件系统,其文件系统树的各节点可以存在于不同的联网计算机甚至不同的系统平台上,可以用来提供跨平台的信息存储与共享。当今最主要的两大网络文件系统是Sun提出的NFS(Network File System)以及由微软、EMC和NetApp提出的CIFS(Common Internet File System),前者主要用于各种Unix平台,后者则主要用于Windows平台,我们熟悉的“网上邻居”的文件共享方式就是基于CIFS系统的。其他著名的网络文件系统还有Novell公司的NCP(网络控制协议)、Apple公司的AFP以及卡内基-梅隆大学的Coda等,NAS的主要功能之一便是通过各种网络文件系统提供存储服务。 IBM Tivoli是IBM公司推出的备份软件,与Veritas的NetBackup和Legato的NetWorker相比,Tivoli Storage Manager更多的适用于IBM主机为主的系统平台,其强大的网络备份功能可以胜任大规模的海量存储系统的备份需要。此外,CA公司原来的备份软件ARCServe,在低端市场具有相当广泛的影响力。其新一代备份产品--BrightStor,定位直指中高端市场,也具有不错的性能。选购备份软件时,应该根据不同的用户需要选择合适的产品,理想的网络备份软件系统应该具备以下功能: 网站浏览器支持是指能否够通过WEB(就是WWW,俗称互联网)手段对NAS产品进行管理,以及管理时使用的浏览器类型。绝大部分的NAS产品都支持WEB管理,这样的好处是管理方便,用户在任何地方只要能够上网就可以轻松的管理NAS设备。目前NAS产品支持的常用浏览器有微软的IE(Internet Explorer)浏览器以及网景公司的Netscape浏览器。 网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不受偶然的或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。网络安全实际上包括两部分:网络的安全和主机系统的安全。网络安全主要通过设置防火墙来实现,也可以考虑在路由器上设置一些数据包过滤的方法防止来自Internet上的黑客的攻击。至于系统的安全则需根据不同的操作系统来修改相关的系统文件,合理设置用户权限和文件属性。NAS产品的网络安全应具有以下四个方面的特征:保密性:信息不泄露给非授权用户、实体或过程,或供其利用的特性。完整性: 数据未经授权不能进行改变的特性。即信息在存储或传输过程中保持不被修改、不被破坏和丢失的特性。可用性:可被授权实体访问并按需求使用的特性。即当需要时能否存取所需的信息。例如网络环境下拒绝服务、破坏网络和有关系统的正常运行等都属于对可用性的攻击;可控性:对信息的传播及内容具有控制能力。 NAS是英文“Network Attached Storage”的缩写, 中文意思是“网络附加存储”。按字面简单说就是连接在网络上, 具备资料存储功能的装置,因此也称为“网络存储器”或者“网络磁盘阵列”。从结构上讲,NAS是功能单一的精简型电脑,因此在架构上不像个人电脑那么复杂,在外观上就像家电产品,只需电源与简单的控制钮, 结构图如下:NAS是一种专业的网络文件存储及文件备份设备,它是基于LAN(局域网)的,按照TCP/IP协议进行通信,以文件的I/O(输入/输出)方式进行数据传输。在LAN环境下,NAS已经完全可以实现异构平台之间的数据级共享,比如NT、UNIX等平台的共享。一个NAS系统包括处理器,文件服务管理模块和多个硬盘驱动器(用于数据的存储)。 NAS 可以应用在任何的网络环境当中。主服务器和客户端可以非常方便地在NAS上存取任意格式的文件,包括SMB格式(Windows)NFS格式(Unix, Linux)和CIFS(Common Internet File System)格式等等。典型的NAS的网络结构如下图所示:存储网络(SAN):SAN 是指存储设备相互连接且与一台服务器或一个服务器群相连的网络。其中的服务器用作 SAN 的接入点。在有些配置中,SAN 也与网络相连。SAN 中将特殊交换机当作连接设备。它们看起来很像常规的以太网络交换机,是 SAN 中的连通点。SAN 使得在各自网络上实现相互通信成为可能,同时并带来了很多有利条件。SAN英文全称:Storage Area Network,即存储区域网络。它是一种通过光纤集线器、光纤路由器、光纤交换机等连接设备将磁盘阵列、磁带等存储设备与相关服务器连接起来的高速专用子网。SAN由三个基本的组件构成:接口(如SCSI、光纤通道、ESCON等)、连接设备(交换设备、网关、路由器、集线器等)和通信控制协议(如IP和SCSI等)。这三个组件再加上附加的存储设备和独立的SAN服务器,就构成一个SAN系统。SAN提供一个专用的、高可靠性的基于光通道的存储网络,SAN允许独立地增加它们的存储容量,也使得管理及集中控制(特别是对于全部存储设备都集群在一起的时候)更加简化。而且,光纤接口提供了10 km的连接长度,这使得物理上分离的远距离存储变得更容易内容来自www.07swz.com请勿采集。

  • 基于802.1x协议的跨平台网络管理认证系统设计与
  • 基于802.1x协议的跨平台网络管理认证系统设计与
  • 跨平台网络扑克游戏设计与实现
  • 跨平台网络扑克游戏设计与实现
  • 跨平台3D魔方网络游戏的设计与实现
  • 跨平台3D魔方网络游戏的设计与实现
  • 无线传感器网络IPv6协议栈的设计与实现
  • 无线传感器网络IPv6协议栈的设计与实现
  • TCP协议网络通信设计方案与实现
  • TCP协议网络通信设计方案与实现
  • 无线传感器网络CSMA协议的设计与实现
  • 无线传感器网络CSMA协议的设计与实现
  • 基于TCP协议的网络通信设计与实现
  • 基于TCP协议的网络通信设计与实现
  • 一种基于邮件协议的僵尸网络的设计与实现
  • 一种基于邮件协议的僵尸网络的设计与实现
  • 网络存储技术的网络存储技术
  • 请介绍一下java
  • 网络协议与网络标准的区别是什么
  • 急需英文翻译,帮帮忙拉。机器翻译的不要来
  • 计算机网络习题
  • 重庆大学网络教育学院 2011年9月课程考试工程建设...
  • 用游戏类库设计与实现的android游戏编程
  • 与上网无关的协议是(   )
  • C语言能写win 和Linux通用的程序么
  • 如果我要购买一家公司,我与他签订转让协议后,约...
  • 无线网络的设计与实现
  • 设计网络通信协议
  • 设计一个网络协议
  • 简单的网络协议设计
  • 网络协议分析与设计
  • 最新推荐
    热门推荐