说明文档
一.开发环境 eclipse 介绍
Eclipse 是 一 个 综 合 开 发 环 境 ( Integrated Development
Environment)IDE,它是一个功能完整且成熟的软件,是一个开放源代码、
基于 Java 的可扩展开发平台。就 Eclipse 本身而言,它只是一个框架和一组被
称为平台核心的服务程序,用于通过插件组件构建开发环境。
Eclipse 平台是一个具有一组强大服务的框架,这些服务支持插件,比如
Java 开发环境插件(JDT)、插件开发环境( PDE)和其他的第三方插件
(New tool)。 Eclipse 中三个最吸引人的地方:一是它创新性的图形 API,
二是它的插件机制。三是利用它的插件机制开发的众多功能强大的插件。
二.P2P 技术
P2P 即 peer-to-peer,或称为对等联网。简单的说,P2P 直接将人们联
系起来,让人们通过互联网直接交互。P2P 使得网络上的沟通变得容易、更直
接共享和交互,真正地消除中间商。P2P 就是人可以直接连接到其他用户的计
算机、交换文件,而不是像过去那样连接到服务器去浏览与下载。P2P 另一个
重要特点是改变互联网现在的以大网站为中心的状态、重返”非中心化”,并把
权力交还给用户。P2P 有三种结构形式,包括混合 P2P、非结构化 P2P 和结构
化 P2P。纯 P2P 中节点同时作为客户端和服务器端,没有中心服务器,也没
有中心路由器,如 Gnutella;杂 P2P 有一个中心服务器保存节点的信息并
对请求这些信息的要求做出响应,节点负责发布这些信息(因为中心服务器并
不保存文件),让中心服务器知道它们想共享什么文件,让需要它的节点下载
其可共享的资源,路由终端使用地址,通过被一组索引引用来取得绝对地址 ,
如 最 原 始 的 Napster ; 混 合 P2P 同 时 含 有 纯 P2P 和 杂 P2P 的 特 点 , 如
Skype。
三.系统设计流程
1. 系统开发要求概述
开发一个简单的 P2P 即时聊天系统,实现功能如下:
1) 点对点的单人聊天
2) 多人同时聊天
3) 用户可以自由加入和退出。
2. 系统开发分析
要开发 P2P 模式的即时聊天系统,首先需要确定 P2P 体系结构,在 P2P 的
三种结构中我选择的是混合 P2P 模式。确定好整体结构,需要规划服务器和客
户端分别要实现的功能。
服务器端:监听客户端的连接请求,并为网络中各客户提供各网络节点的
连接信息,以方便各客户端之间建立连接,完成聊天。在实现中主要功能是向
各个用户发送最新的存在于网络上的节点信息。
客户端:首先应请求加入网络,连接建立后接收从服务器发送来的的在线
客户信息后,此时便可有选择性的与网络中其他客户聊天,也可以接受其他用
户的聊天请求,还可以群聊。
3. 涉及的技术
本次系统开发主要涉及到 socket 编程技术和多线程技术。为了保证数据收
发的可靠性,本系统选择的是基于面向连接的通信方式,即用 TCP 套接字实现