Java网络通信技术实现基于CS模式的聊天室

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

学号200710165114武汉科技大学城市学院课程设计报告课程设计名称Java课程设计题目采用Java网络通信技术实现基于C/S模式的聊天室院系信息工程学部专业信息管理与信息系统班级1班姓名张峰指导教师于海平2010年01月07日1编号:036题目:采用Java网络通信技术实现基于C/S模式的聊天室1课程设计教学条件要求eclipse/netbeans/Jbuilder2课程设计任务编写一个简易CS版聊天室,多个客户端可以同时发送信息,服务器端监听并显示到客户端页面。1.要求可以实现多人同时在线聊天。2.要求客户端和服务器端的界面采用Swing或SWT实现3.服务器可以向多个客户进行广播通信。3课程设计报告书主要内容1需求分析2总体设计2.1设计的总体思想与算法描述2.2模块结构图2.3各功能模块的功能与处理流程描述2.4界面设计3各功能模块程序设计按照功能模块的功能与处理流程描述给出详细的程序代码,并给出重点语句的注释.4小结4课程设计要求1按时到机房签到,在指定机位上机。遵守机房纪律。2独立完成课程设计任务。指导教师到机位上指导学生和分时段验收学生完成的程序。3按时提交打印的课程设计报告书。5课程设计参考书[1]许文宪懂子建.Java程序设计教程与实训.北京:北京大学出版社,2005.[2]辛运帏.Java程序设计.北京:清华大学出版社,2004[3][美]Echel,B.Java编程思想(第三版).北京:机械工业出版社,2005撰写者:江伟指导老师:于海平2目录1需求分析......................................12总体设计......................................22.1设计的总体思想与算法描述.....................22.2模块结构图...................................22.3界面设计.....................................32.3.1管理员界面........................................................................32.3.2登陆界面............................................................................32.3.3聊天界面............................................................................42.3.4文件发送界面....................................................................42.3.5接受提示界面....................................................................52.3.6选择保存界面....................................................................52.3.7传输成功提示界面............................................................53程序设计......................................64小结.........................................21参考文献........................................2211需求分析本系统是实现c/s模式的聊天室首先要建立侦听服务,这个需求是服务器端的需求。其次还应实现:用户登录,包括客户端请求登录以及服务器端响应登录两个过程。收发聊天信息,包括客户端发送聊天信息以及服务器端转发聊天信息两个过程。收发系统信息,由服务器端发送给客户端的信息。用户下线,包括客户端请求下线以及服务器响应请求两个过程,这个与用户登录类似,服务器关闭。其中我还加入了文件传输功能,方便了用户文件的共享。22总体设计2.1设计的总体思想与算法描述依据需求分析的结果,该系统应设计成一个可以实现多人同时在线聊天功能的聊天软件,下面从软件的整体结构设计、界面设计、变量设计等方面阐述一下系统的总体设计。依据需求分析结果,设计应实现多人同时在线聊天,就应该分为服务端和用户端两个端口。用户端把信息发送到服务端,而后服务端再把信息分发到各个用户端。2.2模块结构图图2.1模块结构图32.3界面设计2.3.1管理员界面图2.2管理员界面2.3.2登陆界面图2.3登陆界面42.3.3聊天界面图2.4聊天界面2.3.4文件发送界面图2.5文件发送界面52.3.5接受提示界面图2.6接受提示界面2.3.6选择保存界面图2.7选择保存界面2.3.7传输成功提示界面图2.8传输成功提示界面63程序设计packagecom.ff;importjava.io.*;importjava.net.*;importjava.util.*;importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassStartServer{publicstaticvoidmain(String[]args){StartServerstartServer=newStartServer();StartServer.ServerserverFrame=startServer.newServer();}classServerextendsJFrame{privateJScrollPanejp_rec;privateJScrollPanejp_send;privateJScrollPanejp_list;privateJTextAreajta_rec;privateJTextAreajta_send;privateJLabellbl_rec;privateJLabellbl_edit;privateJListjlist;7privateJButtonbtnSend;//发送消息按钮privateJButtonbtnT;privateDefaultListModellistModel;privateHashMapString,SocketThreadallUserLink=newHashMapString,SocketThread();publicServer(){init();try{ServerSocketserver_socket=newServerSocket(9999);while(true){Socketclient_socket=server_socket.accept();SocketThreaddealThread=newSocketThread(client_socket);newThread(dealThread).start();}}catch(Exceptionex){ex.printStackTrace();}}publicvoidinit(){this.setTitle(管理员平台);this.setSize(800,400);this.setDefaultCloseOperation(EXIT_ON_CLOSE);8this.setLocationRelativeTo(this);Containerc=this.getContentPane();c.setLayout(null);jta_rec=newJTextArea();jta_send=newJTextArea();jp_rec=newJScrollPane();jp_send=newJScrollPane();jp_list=newJScrollPane();lbl_rec=newJLabel(--消息记录--);lbl_edit=newJLabel(--文本编辑--);btnSend=newJButton(发送);btnT=newJButton(T除成员);listModel=newDefaultListModel();jlist=newJList(listModel);jlist.setBorder(BorderFactory.createTitledBorder(在线成员));jp_rec.getViewport().add(jta_rec);jp_send.getViewport().add(jta_send);jp_list.getViewport().add(jlist);jta_rec.setLineWrap(true);jta_send.setLineWrap(true);9jta_rec.setEditable(false);lbl_rec.setBounds(30,10,80,20);jp_rec.setBounds(30,30,450,100);lbl_edit.setBounds(30,130,80,20);jp_send.setBounds(30,150,450,100);btnSend.setBounds(350,260,80,20);jp_list.setBounds(500,30,120,220);btnT.setBounds(520,260,80,20);c.add(lbl_rec);c.add(lbl_edit);c.add(jp_rec);c.add(jp_send);c.add(btnSend);c.add(jp_list);c.add(btnT);this.setVisible(true);}classSocketThreadextendsBaseTrans{privatebooleanthreadON=true;publicSocketThread(Socketclient_socket){super(client_socket);10btnSend.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){messageEvent(code=001;msg=※※※※※※公告+newDate().toLocaleString()+※※※※※※※\r\n+jta_send.getText());jta_send.setText();}});btnT.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){if(jlist.getSelectedValue()!=null){SocketThreadst=allUserLink.get(jlist.getSelectedValue().toString().trim());allUserLink.remove(jlist.getSelectedValue().toString().trim());st.sendMessage(code=0);messageEvent(code=001;msg=※※※※※※公告+newDate().toLocaleString()+※※※※※※※\r\n+jlist.getSelectedValue()+被管理员踢了出去!);st.closeLink();threadON=false;listModel.remove(jlist.getSelectedIndex());}}});}11publicvoidmessageEvent(Stringmsg){StringUtilstringUtil=newStringUtil();stringUtil.AnalysisMessage(msg);Stringcode=st

1 / 26
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功