基于socket的多客户端网络聊天系统的开发与设计-53页内容摘要:

图 3 系统实体及其属性 表 1 用户表 user 属性名 数据类型 字段说明 备注 Id int(6) ID 主键(自动增一) name varchar(10) 用户名 非空 password varchar(10) 用户密码 非空 age int(3) 年龄 sex sex char(2) 性别 简易 聊天工具系统的总体设计要点 本 简易 聊天工具系统的设计与其他普通聊天软件的设计有着很多的不同地方,普通聊天软件的设计有很多要考虑的因素,例如,普通聊天软件需要对程序的图形窗口以及布局进行了大量美化工作,而 简易 聊天工具只是满足的用户的基本的聊天需求。 因此,在设计 简易 聊天工具系统的过程中,以下几个设计要点是必须要考虑的重点: 实现思想 在网络上的聊天工具一般都是服务器提供的连接响应。 用户以客户端为平台连接到服务器,那么用户在同一服务器上就可以聊天了。 因此需要实现客户端与服务器端的功能。 服务器端工作流程 莆田 学院 2020 届本科毕业论文 13 客户端发送请求连接,用户登录,然后进行审核,审核通过后则表示用户成功登录;然后就可以接受客户端发送的信息,再根据需要进行信息的处理;将信息传递至将要传递的客户端。 客户端工作流程 客户端程序 与服务器 端程序相比就 简单 了 , 客户端需要 与服务器端 成功的 连接, 然后寻找相同的 Socket, 通过这个 Socket 来发送和接收数据就可以了。 3 .3 简易 聊天工具系统的设计步骤及功能模块划分 聊天系统工作原理图如下: 图 6 工作原理图 基于 Socket的 简易 网络聊天系统的开发与设计 14 简易 聊天工具系统各功能模块 服务器端功能: 服 务 器 端启动与停止服务查看在线用户详细信息修改学校信息部门信息维护用户信息维护发送信息 图 7 服务器功能 服务器端的主要功能包括:启动服务、停止服务、在线用户详细信息的查看、发送接受到的客户端信息、修改学校信息、部门信息的维护、用户信息的维护。 客户端功能划分为以下模块: 客 户 端客户端的连接与断开更新用户信息查看同学信息聊天内容的保存打开聊天内容的删除发送消息 图 8 客户端功能 客户端的主要功能包括:客户端的连接与断开、更新用户信息、发送消息、查看同学信莆田 学院 2020 届本科毕业论文 15 息、聊天内容的打开保存删除 登录模块 流程图如下 开 始填 写 用 户信 息验 证 用 户 信 息验 证 用 户结 束接 收 离 线信 息成 功失 败发 送 登 陆失 败 信 息 图 9 登录流程图 输入: 管理员账号或者用户帐号和对应的密码。 处理: 检索该用户名是否存在于数据库中,若能检索到,那就在数据库中查找该用户名对应的密码是否正确,再根据用户的权限 进入相应的业务范围和正常的流程, 输出: 相应权限的页面。 登录模块主要代码: package qq_client_jframe。 import。 import。 import。 import。 基于 Socket的 简易 网络聊天系统的开发与设计 16 import。 import。 import。 import。 import。 import。 import。 import。 import。 import。 import。 import。 import。 import。 import。 import。 import。 import。 import。 import。 import。 莆田 学院 2020 届本科毕业论文 17 import。 import。 import。 import。 import。 import。 import。 import。 /** * 这是一个 登录窗体类,它继承自 * @author Devon * */ public class _Login_JFrame extends JFrame{ private JComboBox boBox_ID = new JComboBox()。 private JPasswordField passwordField_Password = new JPasswordField(123456)。 private JPanel panel_NetOption = null。 private JLabel label_NetOption = new JLabel()。 private JButton button_NetOption = new JButton(设 置 )。 基于 Socket的 简易 网络聊天系统的开发与设计 18 private JButton button_Add = new JButton(注册 )。 private JButton button_Login = new JButton(登 录 )。 private JButton button_Exit = new JButton(退 出 )。 private File file = new File(id/)。 private JComboBox boBox_IP = new JComboBox(new String[]{})。 private JTextField textField_Port = new JTextField(6000)。 private user_add_JDialog user_add_JDialog = null。 private ObjectOutputStream objectOutputStream = null。 private ObjectInputStream objectInputStream = null。 private String ID = null。 private String name_ID = null。 /** * 构造一个登录窗体 */ public _Login_JFrame() { super( 用户登录 )。 //初始化 号码框 , 莆田 学院 2020 届本科毕业论文 19 launchComboBox_ID()。 = ()。 (false)。 ()。 (false)。 ()。 ()。 (null)。 (true)。 } /** * 生成一个显示在登录窗体上的有图片的 JLable * @return 显示在登录窗体上的有图片的 JLable */ private JLabel makeLoginImage(){ Icon i = new ImageIcon(image/)。 JLabel l = new JLabel(i)。 return l。 } 基于 Socket的 简易 网络聊天系统的开发与设计 20 /** * 生成一个登录区域的 JPanel * @return 一个登录区域的 JPanel */ private JPanel makeLoginArea(){ JPanel p = new JPanel()。 BoxLayout bl = new BoxLayout(p,)。 (bl)。 //((54, , ))。 //颜色 Border border1 = (5,5,5,5)。 Border border2 = ()。 Border border3 = (border2, 登录 )。 Border border = (border1, border3)。 (border)。 // (border1)。 //(border2)。 莆田 学院 2020 届本科毕业论文 21 // (border3)。 JPanel panel_ID = new JPanel()。 JLabel label_ID = new JLabel( 号码 :)。 //(new Dimension(50,23))。 (label_ID)。 (new Dimension(175,23))。 (true)。 (boBox_ID)。 JPanel panel_Password = new JPanel()。 JLabel label_Password = new JLabel( 密码 :)。 //(new Dimension(50,23))。 (label_Password)。 (new Dimension(175,23))。 (39。 ● 39。 )。 (passwordField_Password)。 ((new Dimension(1,20)))。 基于 Socket的 简易 网络聊天系统的开发与设计 22 (panel_ID)。 ((new Dimension(1,10)))。 (panel_Password)。 ((new Dimension(1,30)))。 return p。 } /** * 生成一个按钮区域的 JPanel * @return 一个按钮区域的 JPanel */ private JPanel makeButton(){ JPanel p = new JPanel()。 _Login_Button_Listener listener = new _Login_Button_Listener(user_add_JDialog, this)。 (new Dimension(70,23))。 (listener)。 (new Dimension(70,23))。 (listener)。 莆田 学院 2020 届本科毕业论文 23 (new Dimension(70,23))。 (listener)。 (new Dimension(70,23))。 (listener)。 ()。 ((new Dimension(10,1)))。 ()。 ((new Dimension(10,1)))。 (button_Login)。 ((new Dimension(10,1)))。 ()。 return p。 } /** * 生成登录界面 JPanel * @return 登录界面 JPanel */ private JPanel makeMain(){ JPanel panel = new JPanel(new BorderLayout())。 ((),)。 基于 Socket的 简易 网络聊天系统的开发与设计 24 ((),)。 ((),)。 return panel。 } /** * 生成网络设置 JPanel * @return 网络设置 JPanel */ private JPanel makeNetOption(){ JPanel panel = new JPanel(new GridLayout(3,1))。 Border border1 = (5,5,5,5)。 Border border2 = ()。 Border border3 = (border2,网络设置 )。 Border border = (border1, border3)。 (border)。 莆田 学院 2020 届本科毕业论文 25 JPanel panel0 = new JPanel()。 ()。 (label_NetOption)。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。