基于tcpip的局域网聊天室的设计与实现内容摘要:
时间, 在此期间通过自己学习和查阅图书以及询问老师 获得相关知识和方法,并 没有其他的支出,而且 现阶段只做学习 暂且不考虑经济成本及盈利问题。 技术可行性分析 首先我已经搭建好开发所需要的软硬件平台,并进行了合理而完善的需求分析,做好了充分的前期准备工作,其次因为本程序的平台将基于 WINDOWS,将要使用网络通信技术,而 WINDOWS 有完善成熟的网络通信接口,以及与 JAVA 开发环境的严密契合能力,加之相类似的更大规模的 INTERNET 通信工具产品也已基于 TCP/IP 的局域网聊天室的设计与实现 6 有 例在先,所以这个程序的开发可行性在技术上是完全可行的。 系统开发环境的分析 系统采用 JAVA 作为开发语言、 Eclipse 作为开发工具,系统的设计从需求分析开始,就保证了系统的稳定性和可扩展性。 JAVA 语言是一种面向对象的编程语言,具有很好的移植性、并且更加的安全 和并发性,这使得 JAVA 语言各线程能够并发进行。 并且 JAVA 支持可视化图形界面,使得操作更加直观。 数据流图 顶层数据流图 聊 天 用 户局 域 网 多人 聊 天 系统聊 天 用 户 图 22聊天系统顶层数据流图 一 层 据流图 聊 天 用 户 聊 天 用 户客 户 端服 务 器 端写 聊 天 信 息返 回读 取返 回提 交反 馈存 储 图 23 聊天系统一层数据流图 基于 TCP/IP 的局域网聊天室的设计与实现 7 第 3 章 系统设计 设计目标 同一个局域网中, 如何根据自身业务的要求,量身定制,选择一套 有效的局域网聊天室 系统。 如何来满足局域网内部用户的通讯要求,在考虑到网络传输实时性,这现代社会通讯所必需的。 设计本系统时,分析网络承载、整个系统结构的组建等是实现局域网文字聊天所必需的。 局域网聊天作为一种广泛的网络应用对其基础的承载网络环境的要求较低。 局域网聊天的功能和应用效果体现在客户端,而服务器端则是必 不可少的,对于系统的需求分析在系统设计的过程中应该明确、细致: 1. 用户登录:设立一个服务器,实现多个用户及时通信。 用户在登陆时候输入明确的用户名称,以便各用户之间能够识别。 2. 文本聊天:聊天室的功能即所谓的群聊,聊天的内容所有的人都能够看到,保密聊天室的功能即所谓的私聊,只有聊天双方才能看到。 用户还可以对字体进行修改。 3. 文件传输:多线程,收发可随时进行,相互之间没有相互影响 ,文件传输速度快。 构建开发环境 硬件平台 CPU:。 内存: 256MB 以上 软件平台 操作系统: windows XP 或 window 7 开发工具包: Eclipse 开发环境: JVM 分辨率:最佳效果 1024*768 像素 系统模块流程图 基于 TCP/IP 的局域网聊天室的设计与实现 8 局域网聊天室 文字聊天 业务流程图如图 31 所示。 图 31系统 文字聊天 业务流程图 发送文件的流程为:用户添加文件向接收端发送文件传输请求,如果同意接收后,则启动计时器,发送文件流,反馈状态,否则继续添加文件,重复操作。 接收文件的流程为:服务器端执行接收线程,接收发送端传来的文件,并把 它保存。 开始 连接服务器 建立连接容许发送消息事件,启动服务器线程 进行文字消息通信 服务器同意连 接。 是否断开连接 发送断开信号,关闭文本聊天 终止 Y Y N N 基于 TCP/IP 的局域网聊天室的设计与实现 9 局域网聊天室 文件发送 业务流程图如图 32 所示。 图 32系统 文 文件传输 业务流程图 系统功能模块图 局域网聊天室功能模块 图如图 32 所示 : 33局域网聊天室功能模块 客户端 用户登陆 主体框 对话框主体 登陆验证 N Y 服务器 记录用户登陆和显示当前在线用户 发消息 发送消息 主窗体 发消息 对话框窗体 TCP/UDP 协议 服务器端 客户端 基于 TCP/IP 的局域网聊天室的设计与实现 10 第 4 章 基于 Eclipse 的聊天室的分析与设计 TCP 套接字的运用 在文字聊天时 ,服务器端与客户端的连接是采用的 TCP 套接节进行连接。 TCP套接字的使用如图 41。 创建 Socket 对象 SocketServer 来处理服务器 端与客户端的连接, Socket 是 Windows Socket API 的高层抽象。 Socket 通常和 其他类 类混合使用,这两个类负责数据的发送和接收 [17]。 要使用 Socket 对象,首先要调用构造函数,然后调用 Create 函数创建一个 Socket[9]。 Socket 和 TCP 的工作流程如下图所示 : 图 41 TCP套接字的使用 基于 TCP/IP 的局域网聊天室的设计与实现 11 TCP 三次握手协议 第一次握手: 源 主机 通过 发送一个 数据 帧来 请求 本次 的 连接。 第二次握手: 当 目的主机收到 源主机发送的这个请求 帧 之后 ,发送一个带有源端机连接序列号 和 本次连接序号 的确认 帧表示同意连接。 第三次握手: 源端机等待接收两次初始应答的序列号之后 , 就 向目的主机发送一个带有两次连接序列号的确认 [10]。 具体过程如下: 主机 A 主机 B 图 42 网络传输的三次握手 程序结构 多用户在线方案: 采用客户端 /服务器( C/S) 的和 JAVA 中多线程结构模式。 服务器通过监听来判断是否有客户端请求登陆并予以响应 , 而客户端则是在需要登陆时候提交登陆请求以便服 务器进行监听。 服务器通常情况下是始终运行的 , 用来 监听 各个 网络端口,一旦 收到客户端的 请求, 就需要立即启动一个进程来响应客户端的服务。 于此同时,服务器还将 继续监听服务 的各个 端口,以便 后来的 客户端 也能及时的接收到 响应。 在这个过程中,很多线程被创建,线程的轮转是有时间片限定的,而这个时间片非常的小,对于客户端来说基本感觉不到,就像所有的线程都是在同时进行的 [10]。 多线程的工作原理如下图所示: ACK=1 第一次握手,主机 A 向主机 B 发送连接请求 第二次握手,主机 B 收到主机 A的请求,向主机 A回发一个确认,同时向主机 A 发送一个连接请求 第三次握手,主机 A 收到主机 B 发送的数据包在向主机 B 发送一个确认连接 SYN=1,SEQ= ACK=1,SYN=1,SEQ= aaaaaaaaaa 基于 TCP/IP 的局域网聊天室的设计与实现 12 图 43 多线程在线 软件框架 Users SendOne SendAll FileTrans UserList Connect Client Server TCP Socket 图 44 软件主题框架 代码实现 用户登陆模块 图 45用户登陆模块 客户端 登陆模块部分主要代码如下 : class Connect extends JFrame implements ActionListener, ItemListener, { public void link() throws Exception { // 连接服务器 hostName = ().trim()。 port = (())。 client = new Socket(hostName, port)。 // 创建一个流套接字并将其连接到指定 IP 地基于 TCP/IP 的局域网聊天室的设计与实现 13 址的指定端口号。 in = new BufferedReader(new InputStreamReader(()))。 out = new PrintWriter(())。 (() + amp。 + sex)。 ()。 } } 服务器 端登陆模块部分主要代码如下: public static void addConnection(Socket s, ClientProc cp) {if (connections == null) {connections = new VectorSocket()。 } (s)。 if (clients == null) {clients = new VectorClientProc()。 } (cp)。 } public static void deleteConnection(Socket s, ClientProc cp) throws IOException {if (connections != null) {(s)。 ()。 } if (clients != null) {(cp)。 }} public static Vector getClients() {return clients。 } 用户列表模块 图 46 在线好友主界面 客户端 用户列表部分代码如下 : public void valueChanged(ListSelectionEvent e) 基于 TCP/IP 的局域网聊天室的设计与实现 14 {// 监听下拉列表的显示内容 if (() =。基于tcpip的局域网聊天室的设计与实现
相关推荐
降低功耗和提高抗核辐射能力的 3. 1 TMS320C54x 的主要 特性 CPU C54x 的 CPU结构包括: 40比特的 ALU,其输入来自 16比特立即数、 16 比特来自数据存储器的数据、暂时存储器、 T中的 16 比特数、数据存储器中两个 16比特字、数据存储器中 32 比特字、累加器中 40 比特字。 2个 40比特的累加器,分为三个部分,保护位( 39- 32 比特)
如图 1所示 ,AIC23有两个数字接口 ,其一是由 /CS,SDIN,SCLK和 MODE构成的数字控制接口 ,通过它将芯片 的控制字写入 AIC23。 从而控制 AIC23的功能。 另一组是由LRCIN,DIN,LROUT,DOUT和 BLCK组成的数字音频接口 ,AIC23的数字音频信号接口从这个接口接收或发出。 图 1 AIC23结构图 在模拟信号接口方面 ,AIC23有 4组 : 由
TMS320VC5402: TMS320VC5402 是 公司的定点数字信号处理芯片,是一种特殊结构的微处理器,为了达到快速进行数字信号处理的目的,采用程序与数据分开的总线结构,流水线操作,单周期完成乘法的硬件乘法器以及一套适合数字信号处理的指令集. 2. 3 系统设计方案: 本设计采用 TI公司的 DSP芯片 TMS320VC5402 设计了 DSP一 5402开发系统,利用该系统完成频谱
、数据段 Data、填充位 PAD 和帧校验序列 FCS 共 8 部分组成。 数据帧传输时,除了数据段的长度不定以外,其他部分的长度固定不变。 数据段为 461500 字节。 以太网规定整个传输包的最大长度不能超过 1514 字节( 14 字节为DA、 SA、 Type),最小不能小于 60 字节。 除去 DA、 SA 和 Type 共 14 字节以外,还最少必须传输 46 字节的数据
(2)按已调信号的结构形式可分为线性调制和非线性调制两种。 (3)按数字调制方式分为调幅、调频和调相三种基本形式。 数字通信解调设备的构成如图 12 所示,主要包括解调单元、信码再生单元和译码单元。 其中,载波同步和定时同步是解调器的 2 个核心单元,它们直接决定着解调器的误码性能。 图 12 数字通信解调系统框图 在传统的数字通信系统中,接收机的解调单元都是用模拟处理方法和器件实现的。 其中
mView是美国 ELANIX公司推出的信号级系统仿真软件 ,主要用于通信系统的设计、仿真 ,是强有力的动态分析工具 ,能满足从信号处理、滤波器设计 ,到复杂的通信系统等不同层次的设计、仿真要求。 随着计算机技术的发展,系统仿真技术在电子工程领域的应用已越来越广泛,信号级系统仿真软件 SystemView的出现标志着仿真技术在通信领域的应用达到了一个新的平。