1、 1 网络编程课程网络编程课程 设计报告设计报告 课程名称 java 程序设计之网络编程 题 目 Android Socket 聊天室 专 业 信息管理与信息系统 班 级 组 长 副 组 长 组 员 指导教师 2 目目 录录 1 设计目的 . 3 2 开发工具和开发环境 . 3 3 设计原理 3 3.1 实现思想 3 3.2 服务器端工作流程 . 3 3.3 客户端工作流程 . 3 4 系统流程图 4 5 系统设计 . 4 5.1 系统功能 . 5 5.2 系统架构 . 5 5.3 模块设计 . 5 6 小结 6 参考文献 6 3 一、一、 设计目的设计目的 随着人们对手机的依赖程度越来越深和
2、人们相互之间的交流 越来越多,开发一款手机聊天软件便显得尤为重要。我组开发的 手机聊天软件-Android Socket 聊天室不仅可以让人们相互之间 的交流变得越来越便捷,而且通过对 Android Socket 聊天室的开 发,使得我们能更好的掌握网络编程知识,锻炼自己的 java 编程 能力。 二、二、开发工具和开发环境开发工具和开发环境 1、开发工具: Eclipse 2、开发环境:JDK 1.7 三、设计原理三、设计原理 1、实现思想 Socket 是 TCP/IP 协议上的一种通信,在通信的两端各建立一 个 Socket,从而在通信的两端之间形成网络虚拟链路。一旦建立 了虚拟的网络
3、链路,两端的程序就可以通过虚拟链路进行通信。 2、服务器端工作流程 (1)创建服务器端套接字并绑定到一个端口上 (2)套接字设置监听模式等待连接请求 (3)接受连接请求后进行通信 (4)返回,等待赢一个连接请求 3、客户端工作流程 (1)创建客户端套接字(指定服务器端IP地址与端口号) (2)连接(Android 创建Socket会自动连接) (3)与服务器端进行通信 (4)关闭套接字 4 四、系统流程图四、系统流程图 五、系统设计五、系统设计 本课程设计按照系统的具体功能要求,首先应用 Socket 编程 创建客户端和服务器端,每多个客户端服务器端就会相因的创建 一个线程,它们之间通过这个连
4、接来实现数据通信;然后在客户 否 是 开始 建立服务器端 有 用 户 申 请 建立连接 有用户发送 信息 处理信息 5 端设置一个监听器,用于监听服务器发来的消息。并根据消息做 出不同的动作。 1、系统功能 该系统实现了用户之间的点对点单人聊天,在线用户之间的群 聊。在客户端和服务器端都可以查看历史消息、保存消息、清空 消息。为了监控用户之间的状态,服务器还可以实现踢掉用户的 功能,同时用户时间文件传输的信息都会在服务器上显示。 2、系统架构 1)选择传输控制协议 TCP,使用 Java 的 Socket 编程机制,分 别建立客户端与服务器端; 2)分别设计客户端与服务器端的界面,客户端使用的
5、是用安 卓开发界面。 3、模块设计 服务器端: 主要实现向各个客户端发布系统消息,接受来自客户端的各种 信息并分别处理。具体功能 连接控制:包括启动服务器、断开服务器以及断开某个客户 端的连接; 管理作用:包括对参与聊天者的昵称进行修改以及向所有或 某个客户端发送消息,维护一个 IP 地址和昵称所对应的哈希表, 以便定位到正确的客户端,且有权强制修改用户昵称; 刷新列表:在有用户登陆或离开的时候实时更新列表,并将 信息反馈到各个客户端; 登陆信息:检查用户是否已登陆,如登录,发消息通知所有 用户。同时刷新在线用户列表; 聊天记录:能保存聊天记录,实现消息的保存、清空以及查 看等功能; 消息处理
6、:解析客户端与服务器端的消息交互类型,并做出 相应处理,能够找到消息所对应的接收端。 客户端: 主要实现向服务器端发布消息,并且对来自服务器的消息做 出相应的响应。具体功能如 连接功能:输入服务器地址,实现登录及断开功能; 登录设置: 登录时, 发送消息使服务器端获得相关登录信息, 昵称及 IP 地址记录到服务器端维持的哈希表,断开后发送消息使 IP 地址及昵称从哈希表中删除; 监听作用:实现对服务器发送过来的消息进行监听的功能; 6 消息处理:接收由服务器端发送来的信息,并做出相应的响 应; 聊天记录:实现聊天记录的保存、清空以及查看等功能; 消息处理:相应从服务器端接收到的消息交互类型,实现用 户与用户之间的信息交流。 六六、小结、小结 通过对 Android Socket 聊天室软件