ImageVerifierCode 换一换
格式:DOC , 页数:18 ,大小:383.50KB ,
资源ID:6266015      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/6266015.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(Java网络聊天室课程设计打印.doc)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

Java网络聊天室课程设计打印.doc

1、 课程设计任务书 题 目: JAVA 聊天室课程设计 学 号 2 姓 名 专 业 计算机科学与技术 课 程 java 网络编程精解 指导教师 职 称 完成时间:2010年6月—2010年7月 计算机科学系制 说 明 一、课程

2、设计写作框架(仅供参考) 摘 要 目 录 正 文 1、 基本设计任务及要求、所用仪器设备; 2、 总体设计方案及主要设计原理; 3、 实现技术及源程序代码; 4、 测试及分析; 5、 结束语(心得体会、改进方向)。 参考文献 二、写作要求: 课程设计写作要求论点明确、论据充分、说明透彻,语言准确恰当,书面整洁,字迹工整。 课程设计的篇幅本科一般为4000字左右,专科一般为3000字左右。 课程设计任务书及成绩评定 课程设计的任务和具体要求 该项目实训的目的主要是对所学网络知识进行梳理、巩固和提高。通过项目实训熟悉系统开发的基本流程,掌握系统开发的各个环节的

3、要点,培养系统分析和设计的能力,锻炼团队合作精神。 具体要求: 课程设计任务下达后,研究系统的功能、性能和界面要求,具体安排如下: 1、下达项目实训任务,进行需求分析,形成需求分析报告。 2、进行总体设计和详细设计,形成详细设计报告,进行系统模块开发。 3、全部上机进行系统模块开发和模块测试。 4、系统集成和集成测试,撰写系统操作说明书和项目实训总结报告。 指导教师签字:       日 期:      指导教师评语 成 绩:   指导教师签字:      日 期:     课程设计所需软件、硬件等 软件:

4、Windows 2000以上的操作系统、JDK开发包、eclipse开发环境 硬件:机房台式计算机 课 程 设 计 进 度 计 划 起 至 日 期 工 作 内 容 备 注 2010.5.28—2010.6.5 2010.6.6—2010.6.18 需求分析及初步设计阶段,根据相应功能设计出各类所用到的方法及数据类型 对各个界面和服务器进行调整及测试完善工作。 参 考 文 献、资 料 索 引 序 号 文献、资料名称 编 著 者 出 版 单 位 1.Java2实用教程(第三版 ) 编著者 耿祥义 张跃平 清华

5、大学出版社 2006 2.Java编程设计 编著者 刘海杰 中国铁道出版社 2006 3.Java网络编程精解 编著者 孙卫琴 电子工业出版社 摘 要 通过此项目实训——JAVA聊天室的设计,实践、总结、回顾了网络编程思想以及编程方法,并通过编写程序来掌握Java语言编程技巧,将学习到的知识融会贯通,同时提高调试程序的能力,养成良好的编程习惯,并增强对程序设计整体思路的把握,理论与时间相结合。 本文的主要工作集中在:该课程基于C/S模式,客户机向服务器发聊天请求,服务器应答并能显示客户机发过来的信息。当用户聊天时,将当前

6、用户名、聊天对象、聊天,内容、聊天语气和是否私聊进行封装,然后与服务器建立Socket连接,再用对象输出流包装Socket的输出流将聊天信息对象发送给服务器端。 当用户发送聊天信息时,服务端将会收到客户端用Socket传输过来的聊天信息对象,然后将其强制转换为Chat对象,接收用户的聊天信息是由多线程技术实现的,因为客户端必须时时关注更新服务器上是否有最新消息,当每次用户接收到聊天信息后将会开始分析聊天信息然后将适合自己的信息人性化地显示在聊天信息界面上。 关键字:java;QQ聊天室,eclipse JAVA 聊天室课程设计 前言: 随着

7、计算机网络日新月异的发展,人们的交流方式越来越多,传统的交流方式,如:信件、电报、电话等已经难以满足人们的交流要求,在互联网上即时的和好友取得联系,已经成为当今社会人们主流的联系方式。因此,两台计算机之间进行即时通讯、发送文件等交流方式已经成为必然潮流。因此出现了QQ等聊天工具,然而QQ等聊天工具虽然方便、实用,但是,娱乐功能太多,有很多吸引人的娱乐功能,从一定程度上来说,是一种娱乐工具,不能作为用于即时通讯、文件共享的专用工具。目前,用于实现单一的即时通讯、文件共享的软件实在太少,而且,它们中大部分都是绝对的C/S模式,对远程服务器有非常大的依赖性,没有彻底实现点对点的交流。为此,我们决定开

8、发一个专用于实现两台计算机之间即时通讯、文件共享的软件,以方便两台计算机之间信息的交流。本软件属于点对点连接的,在连接并通信时,尤其是近程的即时通讯,彻底的脱离了远程的服务器,避免了和远程服务器连接时过多的浪费网络资源。并且避免了服务器忙或与服务器无法连接时,浪费过多时间用于和服务器建立连接!因此,这个软件是极具适应性和实用性的即时通讯软件. 一、课程设计的目的 进一步培养学生面向对象程序设计的思想,加深对面向对象程序设计四大特性的理解,针对JAVA语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。 二、系统分析与设计 系统可以采用任何一种流

9、行的,Java支持的数据库,本系统采用了Microsoft公司的Access作为后台数据库。通过对现在流行的一些Icq的参考,建立数据库,名为chart,数据库共建立一个表,表中基本信息包括编号,uername,password。 (1)用户的基本信息表(表名userlilst) 序号 字段名 含义 数据类型 NULL 1 编号 用户的编号 int 2 username 用户名 文本 3 password 用户的密码 文本 其中编号字段为自动增加。 ◆ 服务器端程序如下: 服务器与客户间通过套接口Socket(TCP)连接。在java中使用套接口相当简单,Ja

10、va API为处理套接口的通信提供了一个类.Socket.,使得编写网络应用程序相对容易.服务器采用多线程以满足多用户的请求,通过JDBC与后台数据库连接,并通过创建一个ServerSocket对象来监听来自客户的连接请求,默认端口为8888,然后无限循环调用accept()方法接受客户程序的连接。 主要代码如下: public static int port=8888; ServerSocket server; Socket client=null; BufferedReader cin=null; PrintWriter cout=n

11、ull; Thread chartThread=null; JButton runButton=new JButton("运行"); JButton stopButton=new JButton("停止"); JButton exitButton=new JButton("退出"); JButton messageButton=new JButton("发送消息"); JTextField serMessage=new JTextField("",25); JPanel p1=new JPanel();

12、 JPanel p2=new JPanel(); JScrollPane messageScrollPane; JTextArea message=new JTextArea(); boolean isRunning=false; public Server(){ super("网络聊天服务器"); p1.add(runButton); p1.add(stopButton); p1.add(exitButton); runButton.addActionListener(this); stopButto

13、n.addActionListener(this); exitButton.addActionListener(this); messageButton.addActionListener(this); p2.add(serMessage); p2.add(messageButton); messageScrollPane=new JScrollPane(message,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); this.

14、getContentPane().add(p1,"North"); this.getContentPane().add(p2,"South"); this.getContentPane().add(messageScrollPane,"Center"); this.setSize(400,300); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true);} public void actionPerformed(ActionEvent e) {if(e.ge

15、tSource()==runButton){ chartThread=new Thread(this); chartThread.start(); runButton.setVisible(false); message.append("服务器启动"+"\n"); }else if (e.getSource()==stopButton) { chartThread=null; runButton.setVisible(true); if(cout!=null) cout.println("stop"); tr

16、y{ if(server!=null) server.close(); }catch(Exception exp){} message.append("服务器停止"+"\n"); }else if(e.getSource()==exitButton) { chartThread=null; if(cout!=null) cout.println("exit"); System.exit(0); }else if (e.getSource()==messageButton) { if(chartThr

17、ead!=null) { sendMessage(serMessage.getText()); message.append("发送:"+serMessage.getText()+"\n"); } } } public void run() { try{ server=new ServerSocket(port); while(chartThread!=null) { client=server.accept() ; cin=new BufferedRea

18、der(new InputStreamReader(client.getInputStream())); cout=new PrintWriter(client.getOutputStream(),true); String username; String password; username=cin.readLine(); password=cin.readLine(); if(userOK(username,password)) { messa

19、ge.append("客户:"+username+"进入\n"); cout.println("ok"); String aline; while((aline=cin.readLine() )!=null&&chartThread!=null) { if(aline.equals("exit")) { message.append("客户:"+username+"已退出!\n"); break; }els

20、e message.append(username+"说:"+aline+"\n"); } }else cout.println("error"); } cin.close() ; cout.close() ; client.close() ; server.close(); } catch(Exception e) { System.out.println(e); } } publ

21、ic boolean userOK(String username,String password) { boolean ok=false; try { //①加载驱动程序 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch (ClassNotFoundException e) { //驱动程序加载不成功,打印错误信息并退出 System.out.println("Can n

22、ot find driver " ); System.exit( -1); } Connection con; try { //②获得jdbc 连接 con = DriverManager.getConnection("jdbc:odbc:TrioMotors", "user", ""); //③创建Statement对象 Statement stmt = con.createStatement();

23、 //④得到查询结果集 String sql = "select * from userlist where username='" + username + "'"; ResultSet rs = stmt.executeQuery(sql); //列印结果集 while(rs.next()) { String ps = rs.getString("password");

24、 if (ps.equals(password)) { //验证通过 ok=true; } } //⑤关闭数据库连接 rs.close(); stmt.close(); con.close(); } catch (SQLException sqe) { sqe.printStackTrace(); } return ok;

25、 } public void sendMessage(String message) { cout.println(message); } public static void main(String args[]) { Server my=new Server(); } } ◆ 客户端程序如下 : 客户通过Socket(InetAddress,port)建立与服务器的连接。服务器与客户都通过构造BufferedReader,PrintWriter来建立输入输出流,然后双方通过该输入输出流来相互传递信息,一旦收到客户方的连接请求,服务器acce

26、pt()方法返回一个新建的Socket对象。客户端然后向服务器发送消息,比如登录,服务器收到来自客户的请求后,针对不同的消息处理请求, 虽然UDP不可靠但是对于icq可靠性并不太重要,而且UDP快速,所以客户间发送信息通过UDP。用户登录时通过类DatagramPacket和DatagramSocket创建UDP包括其本地接受端口以及发送端口。 主要代码如下: public class Client extends JFrame implements ActionListener,Runnable { public static int port=8888; Ser

27、verSocket server; Socket client; BufferedReader cin; PrintWriter cout; private JLabel userlabel=new JLabel("用户名");; private JLabel passwordlabel=new JLabel("密码"); private JTextField username=new JTextField(10); private JPasswordField password=new JPasswordField(10); pr

28、ivate JButton loginButton=new JButton("登录"); private JButton exitButton=new JButton("退出"); private JPanel p1=new JPanel(); JButton messageButton=new JButton("发送消息"); JTextField clientMessage=new JTextField("",25); JPanel p2=new JPanel(); JScrollPane messageScrollPane; JTextArea messag

29、e=new JTextArea(); Thread chart=null; public Client() { super("网络聊天客户端"); p1.add(userlabel); p1.add(username); p1.add(passwordlabel); p1.add(password); p1.add(loginButton); p1.add(exitButton); loginButton.addActionListener(this); exitButton.addActionListener(t

30、his); this.getContentPane().add(p1,"North"); p2.add(clientMessage); p2.add(messageButton); messageButton.addActionListener(this); messageScrollPane=new JScrollPane(message,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); this.getContentPane(

31、).add(p2,"South"); this.getContentPane().add(messageScrollPane,"Center"); this.setSize(500,300); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent e){ if(e.getSource()==loginButton){ String pword=new String(password.getPassword

32、)); if(loginServer(username.getText(),pword)) { chart=new Thread(this); chart.start(); }else{ JOptionPane.showMessageDialog(null,"user name or password error!"); } }else if(e.getSource()==exitButton) { cout.println("exit"); chart=null; } if

33、e.getSource()==messageButton) { sendMessage(clientMessage.getText()); message.append("发送:"+clientMessage.getText()+"\n"); } } public boolean loginServer(String username,String password) { try{ client=new Socket("localhost",8888); cin=new BufferedReader(new

34、InputStreamReader(client.getInputStream())); cout=new PrintWriter(client.getOutputStream(),true); cout.println(username); cout.println(password); String readLine=cin.readLine(); if(readLine.equals("ok")) { message.append("连接到服务器!\n");

35、 return true; } }catch(Exception e) { } return false; } public void run() { String aline; try{ while(chart!=null&&(aline=cin.readLine() )!=null) { if(aline.equals("exit")||aline.equals("stop"))

36、 { message.append("服务器已断开!重新登录!\n"); break; }else message.append("服务器说:"+aline+"\n"); Thread.sleep(200); } cin.close() ; cout.close() ; client.close() ; } catch(Exception e){}

37、 } public void sendMessage(String mes) { cout.println(mes); } public static void main(String args[]) { Client my=new Client(); my.setVisible(true);} 三、界面设计图 图1.1 :服务器端页面 图1.2 :程序运行界面 图1.3 :注册页面 图1.4 :登陆页面 图1.5:网友1页面 图1.6:网友2页面

38、 图1.7:网络涂鸦板颜色面板 图1.8:聊天记录面板 图1.9:数据库页面 四、运行调试与分析讨论 1. 服务器端:(Windows平台)首先应有java环境jdk,建议采用jdk1.5。然后安装Access数据库,建立数据库chart,并且建立表userlist。然后在控制面板中的ODBC数据源中设置用户DSN数据源TrioMotors 建立与数据库的连接。然后运行程序即可。 2. 客户端:只要有有java环境jdk就可以建议jdk1.5。然后运行程序及可。 总结 该课程设计对于进一步培养面向对象程序设计的思想有很大的帮助,同时加

39、深了对面向对象程序设计四大特性的理解,由于能力有限,还存在着许多不足之处。如: ◆ 写代码切勿急躁。这个程序是对我掌握知识熟练度的巨大挑战。写代码过程中经常出现到处报错的情况,常常要花好长时间寻找错误。有时只是单纯的语法错误就会困惑好久。 ◆ 考虑问题要全面,要有整体意识。因为之前写的程序都是单纯的具有一项功能,各部分几件的配合不是很关键,而之一程序包含聊天涂鸦等花样,如果协调不好,就会顾此失彼。 ◆ 同学们之间的互相的帮助也对软件的完成起了很大作用。编写这些代码需要很多方面的知识,一个人要想全面掌握有些困难。当我山穷水尽得时候常找同学过来帮忙调试。 ◆ 实践要比理论难得多。有一个好想法,如果不去实践,永远不知道它正不正确。而这个过程中会遇到各种各样的问题,我也在不断提出与解决问题过程中得到提高。 这些都是需要完善的地方,该系统离实际使用也还有一定的距离,需要我木们不断地进行补充和完善。在这次论文设计中学会了同学之间的相互帮助,增强合作意识,同时要感谢王琳琳老师的帮助和支持,感谢枣庄学校给我们提供良好的上机环境。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服