欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    java聊天小程序课程设计.docx

    • 资源ID:7179832       资源大小:21.57KB        全文页数:14页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    java聊天小程序课程设计.docx

    tryif(client.socket.isConnected()(elseStringaddr=J0ptionPane.ShOWInPUtDialog("请输入服务器IP:"):InelAddressHddress=InetAddress.geIByName(addr):InetSocketAddressSoCketAddreSS=newInetSockelAddress(address,5555):client.socket,connect(SoCketAddress);client,in=newDataInputStreain(client.socket,getInpulSIreani():client,out=newDataOutputStream(cllent,socket.getOutpulStream();name=client.inputName.getText();client,out.wriIeUTF("姓名为"+name+”的挚友风尘仆仆地上线了.”):client,listen.SetEnabled(true);client,filesend.setEnabled(true);client.sendtoall.SetEnabled(true);client,sendtoone.SeIEnabIed(IrUe);client.emote.SetEnabled(true);if(!(client,thread.isAlive()client.thread=newThread(this);clienl.thread,start();catch(IOExceptionee)client,socket,close():catch(IOExceptionel)el.PrintStackTraceO;System.exit(0);Stringem=client.emote.getSeIectedItemO.toString();if(em.equals("表情”)(NHem=;elseem+="铲;if(e.getSorceO=c1lent,sendtoall)if(client.socket.isConnected()(name=client.inputName.getTextO;Strings=client.inputContent.getText();if(s!=null)tryClient.out.writeUTF(name+em+”对大家说:"+s);client,oul.flush();client.inputContent.setText("");catch(IOExceptionel)if(e.getSourceOc1ient.sendtoone)if(client.socket.isConnected()SendtoID=JOptionPane.ShoWInPUtDialOg(“请输入对方ID:*):(2) Clicent.javapackagechat;importjava.awl.*;importjava.io.*:.*:importjava.awt.event.*;importjavax.swing.*;publicclassClientpublicstaticvoidmain(Stringargs)newChatClientO:classChatClientextendsFrameimplementsAction1.islener,RunnablepublicButtonlisten,connection,sendtoall,sendtoone,exit,filesend:publicJComboBoxemote;publicTextFieldinputName,inputContent;publicTextAreaChatReSUIt:publicSocketsocket=null:publicDataInputStreamin-nul1;publicDataOutputStreamot=null;publicThreadthread;ChatClientOboxl.add(listen):box1.add(connection):boxl.add(fiIesend);boxl.add(exit);Boxbox2=Box.CreatellorizonlalBoxO:emote=newJCoinboBoxO;emote.sel.Model(newDefau1IComboBoxMode1(newString"表情","微笑"甜笑"惊喜"嘻嘻"扮酷"嘿嘿"傻笑","新奇","媚眼","鬼脸","沉醉"羞涩"生气"嚷嚷"发怒"难过"高超"菜鸟"问号","狂笑"大哭"示爱"呻吟"想想”);emole.SetEnabled(false);J1.abeljlintput=newJ1.abe1("输入闲聊内容”);box2.add(jlintput);box2.add(inputContent);box2.add(emote);box2.addCsendtoall);box2.add(sendtoone);listen.addActio111.istener(this);connection.addAction1.istener(this):filesend.addAction1.istener(this);exit.addActIon1.istener(this);sendtoall.addAction1.istener(this);catch(IOExceptionel)el.PrintStackTraceO:publicvoidactiOnPerformed(ActionEvente)(ActionProcessactionProcess=newActionProcess(this):try(actionProcess.action(e);)catch(Exceptionel)(el.PrintStackTraceO;publicvoidrun()Strings=nu11;while(true)trys=in.readlTF();ChatResult.append("n"+s);catch(IOExceplione)ChatResult.SetTeXt(A1与服务器断开连接”);trysocket,closeO;catch(Exceptionep)break;(3) ChatServer.javapackagechat:Stringreceive=in.readllTF();if(receive=null)return;if(receive.ContainS("黯然卜线了")for(inti=0;i<threads,size():i+)ServerThreadst-(ServerThread)threads.elementAt(i);st.write("*"+receive+”*");elseif(receive.COntains("上线了")(for(inti=0;i<threads,size():i+)(ServerThreadst=(ServerThread)threads.elementAt(i);st.WriIe("<"+getID()+”>:receive):elseif(receive.contains("监听中")(for(inti=0;i<threads,size();i+)ServerThreadst-(ServerThread)threads.elementAt(i);si.write("*"+receive+"*"):elseif(receive.COntainS("说")if(receive.ConlainS("大家")for(inti=0;i<threads,size();i+)ServerThreadst=(ServerThread)threads.elementAt(i):st.write("<"+getID()+">:"+receive);elseinttemp=receive.indexf(“<");inttempl=receive.indexf(,>*):StringtempS=receive.SUbString(temp+l,tempi);inti=Integer.parselnl(tempS);ServerThreadst=(ServerThread)threads.elementAt(i);st.write(*<*+getID()+",>:JreCeiVe):st=(ServerThread)threads.elementAt(getID();st.write(*<*+getID()+z,>:JreCeiVe);elseServerThreadst=(ServerThread)threads,ele11entt(getID();st.write(*"+receive+”*");catch(Exceptionex)threads.removeEIement(this);ex.PrintStackTraceO;try(socket,close();Jcatch(Exceptionex)ex.PrintStackTraceO;publicvoidwrite(Stringmsg)synchronized(out)tryout.writeUTF(msg):catch(Exceptionex)publicintgetIDOreturnthis.nid;publicvoidsetID(intnid)this.nid=nid;(4) flIesendClient.javapackagechat;importjava.io.BufferedReader;importjava.io.File;importjava.io.FiIeInputStream:importjava.io.InputStreamReader;importjava.io.OulputStreani:importjava.io.PrintStream;.Socket:importjavax.swing.JOptionPane;publicclassfiIesendClient(publicvoidfilesend()throwsException(StringSendtolP=JOPliOnPane.ShowInpulDialog(”请输入对方IP:*);Socketsocket=newSocket(sendtoIP,1234);BufferedReaderbr=newBufferedReadef(newInputStreamReader(socket,getInputStream():PrintStreamps=newPrinlStream(socket,geIOutputStream();Filefile=RetFileO:ps.println(file.getName();ps.println(file.IengtIiO);Stringmsg=br.read1.ine():if("已存在".equals(msg)JOpiionPane.ShowMeSSageDialog(null,”文件已存在,请不要重复上传!”);return;longfinish1.en-1.ong.parse1.ong(msg);I?iIeInputStreamfis=newI?iIeInputStream(file);OutputStreamout=socket.getOutputStream();bytebuffer=newbyIe1024:intlen;fis.skip(finish1.en);while(len=fis.read(buffer)!=-1)out.write(buffer,0,len);fis.close();socket,close();publicFilegetFile()throwsExceptionFilefile=null;booleanflag=false;while(flag=false)StringfiIepath=JOptionPane.ShOWlnPUtDiaIOg(“请输入要上传的路径:"):file=newFiIe(filepath);if(!file,exists()JOptionPane.ShOWMeSSageDiaIOg(null,”您输入的路径不存在,请重新输入!”);flag=false;elseif(file.isDirectory()JOptionPane.ShOWMeSSageDiaIOg(null,”占不支持文件夹上传!请输入,个文件路径!”);flag=false;elseflag=true;returnfile;(5) fiIesendServer.javapackagechat;importjava.io.BufferedReader;importjava.io.File;imporIjava.io.Fi1eOuIputStream:importjava.io.IOException;importjava.io.InputStream:importjava.io.InPUtStreamReader;importjava.io.PrintSlreain:.ServerSocket;.Socket;importjava.text.SimpleDateFoimat;importjava,uli1.Date:importjavax.swing.JOptionPane;publicclassfiIesendServer(publicvoidfiIereceiveOthrowsExceptionServerSocketServerSocket=newServerSocket(1234);JOptionPane.ShoWMeSSageDialOg(null,”服务已启动,绑定1234端口!");while(true)Socketsocket=ServerSocket.accept();newfiIeServerThread(Socket).start();classfIleServerThreadextendsThreadSocketsocket:publicfileServerThrea<i(Socketsocket)this,socket=socket;publicvoidrunOFileOutputStreamfos=null;tryBufferedReaderbr=newBufferedReader(newInputStreamReader(socket,getInputStream();PrintStreamps=newPrinlStream(socket,geIOutputStream();StringfiIeName-br.read1.ine();longiIe1.en=1.ong.parse1.ong(br.read1.ine();Filedir=newFile("upload");dir.11kdir();Filefile=newFile(dir,fileName);if(file.exists()&&file.IengthO=fiIe1.en)(ps.println("已存在”);return;elseps.println(file.length();Stringtime=newSimpleDateFormat(yyyy-MM-d<iHH:Iiirazss).format(newDate();System.out.printin(time+*+(file,exists()?*起先断点续传:”:”起先上传文件:")+file.getName();longstart=System.CurrentTimeMillisO;InpulStreamin=socket.gelInputStrea11();fos=newFiIeOutputStream(file,true):bytebuffer=newbyte1024:intlen;while(len=in.read(buffer)!=-1)(fos.write(buffer,0,len):if(file.IengthO=fiIe1.en)break;fos.close():longend=System.CurrentTimeMillisO;time=newSimpleDateFormatC,yyyy-MM-ddIllkmin:ssz,).fonnat(newDate():System,out.print1n(time+*+*上传文件结束:"+file.getName()+”,耗时:”+(end-start)+"亮秒”);ps.prinlln("上传胜利”):socket,close();catch(IOExceplione)if(fos!=null)try(fos.close();catch(IOExceptionel)el.PrintStackTraceO;运行结果:将5个Java源文件:ActionProces.java,ChatServer.java,CIienl.java、fiIesendClient.javafiIesendServer.Javao分别编译这5个JaVa源文件,或运行“javac礼java”吩咐,编译全部的源文件,然后运行连接服务器的主类,即ActionProces.java<.服务器启动胜利结果分析:在进入闲聊室之前必需先启动服务器,实现服务器端的连接。然后运行ChatSerVer.java结果分析:进行服务器监听,再运行CIienl.java。私聊结果分析:进入闲聊室,在输入框中输入闲聊内容,点击私牌群聊结果分析:多个用户进入闲聊室之后,在输入框中输入闲聊内容,点击群聊运行fiIesendClient.java%fiIesendServer.java文件。结果分析:进行文件传送Av设计体会这次设计经过几天的不懈努力,程序基本满意闲聊的须要。完成后的程序实现了用户登陆闲聊室、用户在线闲聊、用户退出等功能。在这次程序设计中,我主要负责需求分析,功能需求描述,系统模块图等的撰写,程序设计期间,通过询问老师,同学和网上搜寻相关解答等多种方式学习到很多课堂上没有的学问,还积累了肯定的实践阅历,增加动手实力和解决实际问题的实力。在此之前,对于Java编程技术或网络socket编程学问都只是略知皮毛,缺乏深化的相识,对其工作方式和原理缺乏透彻的相识。在这段时间里,我仔细学习了Java语言开发,Applel小程序实现,对编程思想有了进步的体会,养成了些良好的编程习惯。程序虽然完成,但是距离优秀仍存在肯定差距,用JAVA开发大型项目还有很多我须要去努力学习的学问。希望自己能不断学习和实践,争取以后做得更好。限于我的学问水平和阅历有限,此程序还有很多有待完善和改正的地方,恳请老师指责指正。九、参考文献1侯俊杰.深化浅出MFCM,武汉:华中科技高校出版社,20O1.2朱福喜,傅建明,唐晓军.Java项目设计与开发范例M.北京:电子工业出版社,2005.3朱福喜,唐晓军.Java程序设计技巧与开发实例M.北京:人民邮电出版社,2004.4洪维恩,何嘉.Java面对对象程序设计M.北京:中国铁道出版社,2005.5刘慈宁Java程序设计M.北京:机械工业出版社,2005.6j殷兆麟Java网络编程基础用.北京:清华高校出版社,2004.7黄强.WINDOWS网络编程IM).北京:人民邮电出版社,2003.8 W.RichardStevens.TCP/IP详解M.范建华,译.北京:机械工业出版社,2000.9 AndrewS.Tanenbaum,VrijeUniversiteit,Amsterdam,TheNetherla.计算机网络M.4版.潘爱民,译.北京:清华高校出版社,2004.10林晓基于TCP/IP的局域网闲聊工具设计J.福州:福建电脑,2007,(10):123-124.11林锐.软件工程思想IMl.西安:西安电子科技高校出版社,2001.12耿祥义,张跃平.Java2好用教程IMI.2版.北京:清华高校出版社,2006.13赵海亮.局域网闲聊程序的分析与实现J.北京:中国科技信.2004»(22):17-18.14马勇.基于UDP多播文件传输方法的探讨J.福州:福建电脑.2009,(2):69-70.15黄海芳,宋筱媛,基于UDP组播的局域网闲聊设计J.福州:福建电脑.2008,(2):121722.

    注意事项

    本文(java聊天小程序课程设计.docx)为本站会员(李司机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开