工学]基于java局域网聊天程序设计与实现内容摘要:
、网络互联层和网络接口层。 IP协议的作用:第一,它是网络层的协议,提供互联网上数据传输的统一格式。 第二,提供 不可靠的无连接的服务。 第三,定义了互联网上的传输数据的基本单元,提供了供路由选择的信息,没有差错校验和处理的机制。 TCP/IP 协议具有以下特点: 协议标准具有开放性,其独立于特定的计算机硬件及操作系统,可以免费使用。 统一分配网络地址,使得每个 TCP/IP 设备在网络中都具有唯一的 IP地址。 实现了高层协议的标准化,能为用户提供多种可靠的服务。 (2)TCP/IP 协议进行传输数据传输的过程: 应用程序为了传输数据会调用 TCP,将数据和对应的参数传给 TCP,将 TCP 数据包 第 页 7 封装在 IP 包内,通过网络送给目的 TCP。 接收方 TCP 在接收到数据后通知上层应用程序,TCP将保证接收数据的正确性。 TCP 调用 IP 接口,向 TCP 提供所有 TCP 需要的服务。 (3)端口号: 有的时候,一个 IP 地址不能完整的标识一台服务器,这是应为一台物理性的计算机同时运行着多个应用程序,这就需要我们来区别同一台机子上的不同的服务,所以就在传输层和应用层上设置接口,就是端口。 端口实际是一个 16 位长的 地址,他的范围是 0~ 65535 之间,其中 0~ 1023 是熟知端口,主要是给提供服务的应用程序使用,这些端口是所有应用进程都只道的, 1024~ 65535 为一般端口,也称动态端口、连接端口,用来随时分配要求通信的 客户端应用程序。 在数据传输过程中,各种服务器不断的检测分配给他的端口,一边发现要求和他通信的客户端。 Socket 的简介 Socket,简称套接字,用于实现网络上客户和服务器之间的连接。 也就是说网络上两个或两个以上双工方式通信的进程之间总有一个连接,这个连接的端点成为套接字,套接字是在比较低的层次上通信的。 具体的说:一个服务器应用程序一般侦听一个特定的端口等待客户端的连接请求,当一个连接请求到达时,客户端和服武器端建立一个通信连接,在 连接过程中,客户端被分配一个本地端口与一个 Socket 建立连接,客户端通过写 Socket 来通知服务器,以读 Socket 中的信息,类似的服务器也获得一个本地端口,它需要一个新的端口号来侦听原始端口上的其他连接请求。 服务器也通过它的本地端口连接一个 socket,通过读写和客户端通信。 Socket 程序的工作过程: 建立 Socket 连接:在通信开始之前由通信双方确认身份,建立一条专用的虚拟连接通道。 第 页 8 数据通信:利用虚拟连接通道传送数据信息进行通道。 关闭:通信结束时,再将所建的虚拟连接拆除。 具体如下 : Socket套接字原理图 对等网络 对等网络发展历史 对等网络 (peer to peer,简称 P2P)应用最初出现时 和现在并不相同。 事实 上 可以认为它是若干不同技术 的产物。 下面是两个导致 P2P技术发展最重要的趋势 : 首先是某些新技术与软件工程结合,形成 一种将工作分散的趋势。 P2P 计算正是 这种分散工作趋势的必然 结果。 其次 从工程的角度看来,在企业应用集成等因素的驱动下,过去十年渐渐形 成一种从集中 系统转向分布式系统的趋势。 对功能强大的网络计算机的需求以及昂贵的 带宽开销,是对这种趋势影响最大的两个因素。 为了提高效率, P2P 计算由许多互相连接的同位体 组成。 1 服务器 socket 2 监听 4 接收 5 读 6 写 7 关闭 3 客户端 etsocket 6 写 5 读 7 关闭 第 页 9 除了技术方面之外的社会因素也是一个重要原因。 毫无疑问,人们现在对 P2P计算技术的热切关注起源于 Napster, Scour, Gnutella,以及即时通讯类 的相关 产品。 这些产品提供了所谓的“ killer apps”功能,能够将 P2P 技术中的一部分下放到客户端 手中。 这种第一手的体验,使得人们越来越关注 P2P技术。 对等网络的概念 目前,业界对 P2P的定义还没有一个标准的说法, Intel 将 P2P技术定义为 “通过系统间的直接交换达成计算机资源与信息的共享”。 IBM则把它看成是由若干互联协作的计算机构成的系统并具备如下若干特性之一 :系统依存于边缘化设备的主动协作,每个成员直接从其他成员而不是从服务器的参与中受益。 系统中成员同时扮演服务器与客户端的角色。 系统应用的用户能够意识到彼此的存在而构成一个虚拟或实际的群体。 简单地说, P2P 技术是一种用于不同 PC 用户之间、不经过中继设备直接交 换数据或服务的技术。 它打破了传统的 C/S 模式,在对等网络中,每个节点的地位都是相同的,具备客户端和服务器双重特性,可以同时作为服务使 用者和服务提供者。 对等网络的主要系统结构 PZP 模式的变化经历了集中式、分布式和混合式 3个阶段。 (1)集中式对等网络 集中式 P2P 模式由一个中心服务器 来负责记录共享信息以及反馈 查询。 每一个对等实体要对它所需共享的信息以及进行的通信负责。 这种形式具有中心化的特点,但是它不同于传统意义上的 C/S模式。 集中式 P2P 模式则是所有网上提供的资料都存放在提供该资料的客户机上,服务器上只保留索引信息,此外服务器与对等实体以及对等实体之间都具有交互能力。 集中目录式 PZP 模型还存在很多问题,主要表现为 : 中央服务器的瘫痪将 导致整个网络的崩溃,可靠性和安全性较低 : 第 页 10 随着网络规模的扩大,中央目录服务器维护和更新的费用将急剧增加,所需成本过高。 中央服务器的存在引起共享资源在版权问题上的纠纷,这也是直接导致 Napster 破产的原因。 缺乏有效的强制共享机制,资源可用性差。 集中式 P2P可提供中心服务器目录检索、管理服务和标准的点到点通信,具有高效的检索和低效的交换服务的特点。 集中式 P2P对小型网络而言 在管理和控制方面占有一定的优势,但对大型网络并不适合。 (2)分布式对等网络 在分布式 P2P中,对等机通过与相邻 对等机之间的连接遍历整个网络体系。 每个对等机在功能上都是相似的,并没有专门的服务器,而对等机必须依靠它们所在的分布网络来查找文件和定位其他对等机。 以 Gnutella 网络为例,一台新对等机首先通过访问某特殊站点提供的 主机 缓存服务 机制来得到一台活动对 等机地址,通过与它建立一个连接将自己接入 Gnutella 网络。 接着,该新对等机主动探查网络中的其它对等机,找到与之相邻的对等机节点,在进行文件查找时,该对等机首先向与之相邻的所有活动对等点发送一个查询描述符 Query,在其他对等机接收到该查询描述符后,检查本地是否 有符合查询请求的文件内容,如果有,则按查询描述符的发送路径返回一个查询响应描述符 QueryHit,无论本地是否存在符合查询请求的文件内容,其他对等机都会将该查询包通过扩散方式继续在网络中传递,直至查询包中 TTL 属性值递减为 0 时才停止继续转发。 一旦定位了响应查询文件的对等机之后,就与响应对等机建立 TCP 连接,通过 HTTP 协议从响应对等机中下载自己查询的文件。 文件的传输不再经过 Gnutella 网络进行。 分布式对等网络模型也存在很多弊端,主要表现在以下方面 : 第 页 11 搜索请求要经过整个网络或者至少是一个很大的范围才 能得 到结果,因此,这种模式占用很多带宽,而且需要花费很长时间才能有返回结果。 随着网络规模的扩大,通过扩散方式定位对等点及查询信息的方法将会 造成网络流量增加, 导致网络拥塞,最终使 Gnutella 网络被分片, 因此,网络的可扩展性不好,不适合大型网络。 纯分布式的 P2P 模式很难被企业所利用,因为它缺少对网络上的用户节点数以及对他们提供的资源的一个总体把握。 安全性不高,易遭受恶意攻击。 这种无中心、纯分布式系统的特点是 :它不再是简单的点到点通信,而是更高效、更复杂的网络通信。 (3)混合 P2P网络 集中式 P2P有利 于网络资源的快速检索,并且只要服务器能力足够强大就可以无限扩展,但是其中心化的模式容易遭到直接的攻击 :分布式 P2P 解决了抗攻 击问题,但是又缺乏快速搜索和可 扩展性。 混合式 P2P结合了集中式和分布式 P2P的优点,在设计思想和处理能力上都得到了进一步的优化。 它在分布式模式 的基 础上,将用户节点按能力进行分类,使某些节点担任特殊的任务。 这些节点共分为 3种 : 用户节点 :普通节点,它不具有任何特殊的功能。 搜索节点 :处理搜索请求,从它们的孩子 节点中搜索文件列表,这些节点必须有 128 kbit/s RAM 的网络连接速度, 建议使用高性能的处理器。 索引节点 :连接速度快、内存充足的节点可以作为索引节点。 索引节点用于保存可以利用的搜索节点信息,并搜集状态信息,维护网络结构信息。 在第三代 P2P的软件体系结构中,采用了混合式 P2P。 这种模式的关键之一是引入 第 页 12 了索引节点,索引节点不会直接连接到有版权的资料上,它就像搜索引擎一样,只是搜索和所需资料相关的地址,至于用户到底连接下载了什么内容则和它无关。 这种模式的关键之二是引入搜索节点,搜索节点管理着所属用户的文件列表。 用户节点通过索引节点获得搜索节点信息,之后用户节点就与获得的搜索节点相 连,每一次查询都通过该搜索节点进行。 当用户发出搜索请求后,如果和用户节点直接相连的搜索节点查询结果达到 100 个就停止。 如果不足 100 个,就向相邻的搜索节点发出请求,如果查询结果还不够,就继续向外快速发散,直到所有的搜索节点都被搜索到为止。 若所有的搜索节点都被访问过,就意味着整个网络上的节点都被搜索到了,其速度要比纯 P2P模式快得多。 第 页 13 2 JAVAqq 局域网聊天程序的需求分析 课题来源 根据当前网络的需求,网络聊天越来越受各种网民所青睐。 因此开发网络聊天是相当有必要,而且在网站内增加聊天功 能,它不仅可以提高网站的访问量,同时可以留着访客,更重要的是让访客透过聊天室实时的互相交流。 现在 Intra 网络在企业中越来越流行,不需要连入广域网就实现实时消息传递的系统由于其优越的性能受到企业的青睐。 本人 原来 学习过 JAVA 语言, 对 P2P 技术以及 网络编程也较有兴趣,为了更好的考验自己对 JAVA 语言的掌握程度, 以及能更深入的理解 P2P 技术的内涵, 本人就决定以《基于 JAVA 局域网 聊天 程序 设计与实现》为毕业设计, 希望通过这一次的能进一步提高本人的网络 编程的能力。 需求分析 基于 P2P的 聊天系统 , 用 户既是 服务器端 也是 客户端。 这并不同于传统的一服务器多客户端的网络结构, 而是多服务器多客户端的网络结构,服务器与客户端一一绑定,数量相等。 不过 ,从原理上看, 这 还是 C/S 模式。 所以,我的 程序 大致 可分为服务器模块和 客户端 模块来 进行 分析。 首先 介绍 一下服务器 模块 的任务: 模块 应当建立一个 ServerSocket,并且不断进行侦听是否有客户端 模块 连接或者断开连接。 模块监听网络上的客户端模块是否有与本机进行通信的需求。 若有需求,就建立连接, 接收消息, 通过 ActionListener 接口进行侦听,当 用户点击按钮后,启动一个聊天界面,将消息 通过客户端模块显示出来。 以 上就是服务器 模块 最主要的两个任务。 第 页 14 客户端应该完成的工作包括: ,若成功,通过 ServerSocket 进行连接,端口默认为 5001。 服务器 接收 的信息。 除此之外,本系统还讲实现群聊功能:默认 为广播地址, 用 UDP 技术 通过广播的方式把消息传递给局域网内每个用户的手中。 从原理上讲 , 跟实现客户端的原理差不多,只不过这里不是点对点两人通信。 第 页 15 3 JAVAqq 局域网聊天程序的 系统分析与设计 JAVAqq 局域网 聊天 程序 的总体设计要点 聊天系统的设计跟普通网站设计有着许多不同的地方,普通网站设计所考虑的因素,例如,普通网站需要对布局进入大量美化以及动画设计等等,而聊天室只要提供满足访客双方直接实时聊天即可。 因此,在设计聊天系统的过程中,必须要考虑好以下几个设计要点: 实现思想 局域网基于 P2P 上的聊天程序一般都是以服务器 模块 提供 连。工学]基于java局域网聊天程序设计与实现
相关推荐
践来看,外销人员普遍缺乏文化差异的概念,习惯于用自己的文化价值观去推测异国购买者的行为,按照本国文化背景下的决策方法制定国际营销策略。 这已经成为我国企业进一步开拓市场、增强竞争地位的一个限制条件。 因此,我国企业的出口营销实践中,强调文化差异的重要性,已成为当务之急。 语言是思想、文化和信息交流的工具,要进入国际市场,就必须了解各国的语言文字,并掌握它,这对于沟通思想、掌握市场信息
靠性高、使用方便、易于编程控制、适于工业应用环境等一系列优点,因此广泛应用于各行业的控制系统中,如机械制造、电力、交通、轻工、食品加工等行业。 PLC 既可用于旧设备改造,也可用于新产品开发,在机电一体化、工业自动化等方面应用极其广泛。 可编程控制器( PLC)广泛地应用于工业控制。 它通过用户存储的应用程序来控制生产过程,具有可靠性高、稳定性好 和实时处理能力强的优点。 PLC
PLC采用开关式稳压电源供电。 ⑤ 通信端口 PLC 的 CPU 模块上至少有一个通信端口。 通过这个通信端口, PLC 可以直接和编程器或上位机相连。 ⑥ 编程器 编程器用来生成用户程序,并用它进行编辑、检查、修改和监控用户程序的执行情况。 手持式编程器不能直接输入和编辑梯形图,只能输入和编辑指令表程序。 一般用于小型机或用于现场调试和维护。 使用编程软件可以在计算机上直
助强势的厨卫品牌和厂家资源,以快捷、完善的售后服务及亚伟燃气的品牌积蓄打开市场,获得了部分消费者的认同,抢占了一部分厨卫商品及其他小家电的占有率。 其他: 人人乐利用超市的人流量及舒适的购物环境抢走了部分客源;新泰新空调则在工程机方面继续发挥它的优势。 新塘片区 国美:十月一日进驻新塘,国美电器开业前期虽投入了大量的电视广告宣传,但最终由于装修进度跟不上,开业伧促,加之期间促销力度又不大
愚浦注滇排恿求阜购贞始熏稳砸娠毅碾虾戮凛涝莱经抽初拾搪 ◆酒店各部门的主要职能如下: 银河大酒店酒店完整培训 手册 66 王玮 /编著董事长致词肘枚勉泛峦鲁榔矮雇姜缠笑弃赂硕阻努含速锦盖痉吃虚碳睫膏预尤视锅欠棉杉掉凛瞪愚浦注滇排恿求阜购贞始熏稳砸娠毅碾虾戮凛涝莱经抽初拾搪 行政部(又称总经理办公室)( Executive Office) 银河大酒店酒店完整培训手册 66 王玮
e advantage of other software. Flash8 is Macromedia39。 s latest animation software, and is currently the most popular, most powerful, and easy to learn as a development tool. Compared with the