局域网qq课程设计(编辑修改稿)内容摘要:

对象输出流包装后写入本地文件将其持久化。 最后关闭对象输出流和文件输入流。 ( 3)给客户端返回信息: 将用户注册成功或失败的信息用打印流包装 Socket 以后,输出给客户端注册结果的详细信息。 用户登录 ( 1)去数据库读数据库数据 ( 2)验证用户名是否存在 接收用户聊天信息 ( 1)接收用户聊天信息 当用户发送聊天信息时,服务端将会收到客户端用 Socket 传输过来的聊天信息对象,然后将其强制转换为 Chat 对象。 ( 2)过滤用户聊天内容的非法信息 分析聊天信息对象的聊天内容,用语言过滤类将非法字符过滤掉。 语言过滤的时候将会打开“ ”文件,不允许出现的关键词将会存储在文件中,关键字之间以逗号分割。 当聊天内容中出现要过渡的关键字是将会被系统屏蔽,而聊天内容正常发送给接收端。 ( 3) 接收服务器端的系统消息 当有其他用户登陆时,系统会给在线的所有用户发送用户登陆信息,并且通过服务器可以给各用户发送系统消息。 系统消息发出后,如再有登录者也可以接收到系统消息。 ( 4)返回给客户端 当以上信息都封装成功后,打开与客户端连接的 Socket 的输出流,然后再用 ObjectOutputStream 对象输出流包装后输出给客户端。 客户端程序编写 程序将通过 用户注册界面收集用户的昵称、姓名、性别、年龄、所在地。 ( 1)用户登录 程序将通过 用户登录界面收集用户 userId。 ( 2)好友列表 当用户登录成功后,用户的登录界面将会隐藏,然后创建用户好友列表窗口,当界面的标题栏将会显示当前用户的 userId,以防止机器上的用户开多个账号后分不清是哪个用户登录。 第一行显示好友的列表,第二行是陌生人列表,第三《面向对象程序设计》课程设计报告 行是黑名单列白。 好友列表里面显示的是好友的 userId。 ( 3)聊天室 当在好友界面里面点击一个在线的好友时会弹出一个用户与好友聊天的窗口。 在界面上标题栏上显示好友 userId 的界面。 用户需要发送信息时,在聊天内容里写下要发送的内容,然后点击发 送就可一发送到好友的客户端。 6.总结 Java 向对象程序设计是一门应用广泛面实用性极强的程序设计语言。 通过本次课程设计,我对项目的各个阶段的任务有一定的了解。 设计开始阶段必须明确设计的目的与需求分析,总体设计要全面分析聊天室的系统构建。 客户端发送信息时,将要发送的内容(包括聊天信息标识。 聊天对象,聊天对象,状态、表情、内容)以及用户列表通过消息框进行发送,发给某个用户则是通过消息框发送信息。 服务器端和客户端接受消息时,先读取聊天信息标识,做出判断,依次读取、处理信息,并在界面上显示。 服务 器端还要将准备好的信息发送给指定的用户。 服务器端帧听到有用户下线后,讲删出用户结点,并在界面显示用户下线,发送新用户列表。 服务端停止服务,也会向客服端发送服务器已关闭,客户讲不再可以聊天。 在这过程中哪怕只是一点点的错误,却要花出号几个此傲视甚至几天的时间才把它找出来。 所以在这过程中我们不能急于求成,要很有耐心的反复调试程序,查资料,找出错误。 7.参考资料 [1]胡伏湘 ,雷军环 .Java 程序设计实用教程 .清华大学出版社 .20xx年 . [2] 版社 .20xx年 . [3] 核心技术 (第二版 ).电子工业出版社 .20xx年 . [4]陆光义 .Java 游戏编程导学 .清华大学出版社 .20xx年 . [5]郭谦 .Java 程序性能优化 .铁路计算机应用 .20xx年 . [6] 语言程序设计 基础篇 .机械工业出版社 .20xx年 . [7] 语言程序设计 进阶篇 .机械工业出版社 .20xx 年 . 《面向对象程序设计》课程设计报告 ( 1) 启动服务器 代码: public class MyServerFrame extends JFrame implements ActionListener{ JPanel jp1。 JButton jb1,jb2。 public static void main(String[] args) { MyServerFrame f=new MyServerFrame()。 } public MyServerFrame() { jp1=new JPanel()。 jb1=new JButton(启动服务器 )。 (this)。 jb2=new JButton(关闭服务器 )。 (jb1)。 (jb2)。 (jp1)。 (500,400)。 ()。 (true)。 } public void actionPerformed(ActionEvent e) { // TODO Autogenerated method stub if(()==jb1) {new MyQqServer()。 }}} ( 2) 注册界面 代码 : public class register extends JFrame implements ActionListener{ static { try{ ()。 (Success loading Driver!)。 } catch(Exception e){ 《面向对象程序设计》课程设计报告 ()。 }} String url = jdbc: String userName = root。 String password = 111111。 Connection conn=null。 Statement sql。 String userId = null。 JLael jbl1,jp2_jl1,jp2_jl2,jp2_jl3,jp2_jl4,jp2_jl5,jp2_jl6,jp2_jl7。 JPanel jp1,jp2。 JTextField jp2_jtf11,jp2_jtf12,jp2_jtf3,jp2_jtf4。 JPasswordField jp2_jpf1,jp2_jpf2。 JButton jb1。 JRadioButton jb2,jb3。 Box b1。 ButtonGroup btg。 char b。 public static void main(String[] args) { register f=new register()。 } public register() {setLayout(new BorderLayout())。 //处理北部 jbl1=new JLabel(new ImageIcon(image/))。 //处理中部 jp2=new JPanel(new GridLayout(7,2))。 jp2_jl1=new JLabel(昵称 :,)。 jp2_jl2=new JLabel(姓名 :,)。 jp2_jl3=new JLabel(密码 :,)。 jp2_jl4=new JLabel(确认密码 :,)。 jp2_jl5=new JLabel(性别 :,)。 b1=()。 jb2=new JRadioButton(男 )。 jb3=new JRadioButton(女 )。 《面向对象程序设计》课程设计报告 (jb2)。 (jb3)。 btg=new ButtonGroup()。 (jb2)。 (jb3)。 jp2_jl6=new JLabel(年龄 :,)。 jp2_jl7=new JLabel(所在地 :,)。 jp2_jtf3=new JTextField(15)。 jp2_jtf11=new JTextField(15)。 jp2_jtf12=new JTextField(15)。 jp2_jtf4=new JTextField(15)。 jp2_jpf1=new JPasswordField()。 jp2_jpf2=new JPasswordField()。 (jp2_jl1)。 (jp2_jtf11)。 (jp2_jl2)。 (jp2_jtf12)。 (jp2_jl3)。 (jp2_jpf1)。 (jp2_jl4)。 (jp2_jpf2)。 (jp2_jl5)。 (b1)。 (jp2_jl6)。 (jp2_jtf4)。 (jp2_jl7)。 (jp2_jtf3)。 //处理南部 jp1=new JPanel()。 jb1=new JButton(立即注册 )。 ()。 ()。 (this)。 (jb1)。 《面向对象程序设计》课程设计报告 (jbl1,)。 (jp2,)。 (jp1,)。 (346,365)。 ()。 (true)。 } public void actionPerformed(ActionEve。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。