下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 即时聊天工具

即时聊天工具.doc

即时聊天工具

150*****198@sina.cn
2012-06-03 0人阅读 举报 0 0 暂无简介

简介:本文档为《即时聊天工具doc》,可适用于人文社科领域

即时聊天工具的实现一.前言课程设计的目的本课程设计主要在于巩固对网络编程的学习掌握Java开发网络应用程序的基本方法进一步提高自己综合运用所学知识的能力。课程设计的要求明确题目要求进行需求分析进行功能设计编写设计说明书进行程序设计与调试编写程序使用说明书界面美观大方。二.软件设计图总体架构通信过程三.软件设计过程概要设计JButtonclientbtnJButtonserverbtnJTextFieldtaddressJTextFieldtportJTextFieldchatJTextAreatJScrollPanembooleanisServer设计各种控件publicChatOneToOne(){clientbtn=newJButton("Client")serverbtn=newJButton("Server")taddress=newJTextField("inputyourInetAddress")tport=newJTextField("inputport")chat=newJTextField()chataddKeyListener(newKListener())t=newJTextArea(,)tsetWrapStyleWord(true)tsetLineWrap(true)tsetEditable(false)m=newJScrollPane(t,JScrollPaneVERTICALSCROLLBARASNEEDED,JScrollPaneHORIZONTALSCROLLBARASNEEDED)isServer=falseContainercontent=getContentPane()contentsetLayout(newFlowLayout())contentadd(taddress)contentadd(tport)contentadd(clientbtn)contentadd(serverbtn)contentadd(m)contentadd(chat)setSize(,)setTitle("chatonetoone")clientbtnaddActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){port=IntegerparseInt(tportgetText())client=newClient(taddressgetText(),port,jfrm)clientstart()taddresssetEnabled(false)tportsetEnabled(false)clientbtnsetEnabled(false)serverbtnsetEnabled(false)msetEnabled(false)}})serverbtnaddActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){port=IntegerparseInt(tportgetText())isServer=trueserver=newServer(port,jfrm)serverstart()taddresssetText("hereistheServer")taddresssetEnabled(false)tportsetEnabled(false)clientbtnsetEnabled(false)serverbtnsetEnabled(false)}})addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){Systemexit()}})show()}publicstaticvoidmain(Stringargs){jfrm=newChatOneToOne()}privateclassKListenerextendsKeyAdapter{publicvoidkeyPressed(KeyEvente){if(egetKeyCode()==KeyEventVKENTER){tappend(">"chatgetText()"n")if(isServer)serverdataout(chatgetText())elseclientdataout(chatgetText())chatsetText("")}}}}服务器设计importjavaawt*importjavaawtevent*importjavanet*importjavaio*importjavaxswing*publicclassServerextendsThread{ServerSocketsersocketSocketsocketBufferedReadertheInputStreamPrintStreamtheOutputStreamStringreadinChatOneToOnechatpublicServer(intport,ChatOneToOnejfrm){try{sersocket=newServerSocket(port)chat=jfrm}catch(IOExceptione){chattappend(etoString())}}publicvoidrun(){try{chattappend("waitingforconnecting")socket=sersocketaccept()chattappend("client"socketgetInetAddress()"isconnectedn")theInputStream=newBufferedReader(newInputStreamReader(socketgetInputStream()))theOutputStream=newPrintStream(socketgetOutputStream())while(true){readin=theInputStreamreadLine()chattappend(readin"n")}}catch(SocketExceptione){chattappend("connectisinterrupted!n")chatclientbtnsetEnabled(true)chatserverbtnsetEnabled(true)chattportsetEnabled(true)chattaddresssetEnabled(true)try{sersocketclose()socketclose()}catch(IOExceptionerr){chattappend(errtoString())}}catch(IOExceptione){chattappend(etoString())}}publicvoiddataout(Stringdata){theOutputStreamprintln(data)}}客户端设计importjavaio*importjavanet*importjavaawt*importjavaawtevent*importjavaxswing*publicclassClientimplementsRunnable{SocketsocketintportThreadnewThreadInetAddresshostChatOneToOnechatBufferedReadertheInputStreamPrintStreamtheOutputStreamStringreadinpublicClient(Stringaddress,inttport,ChatOneToOnejfrm){try{host=InetAddressgetByName(address)port=tportchat=jfrmnewThread=newThread(this)newThreadstart()}catch(Exceptione){chattappend(etoString())}}publicvoidstop(){newThread=}publicvoidrun(){try{chattappend("trytoconnectthehost")socket=newSocket(host,port)chattappend("hostisconnectedn")theInputStream=newBufferedReader(newInputStreamReader(socketgetInputStream()))theOutputStream=newPrintStream(socketgetOutputStream())while(newThread!=){readin=theInputStreamreadLine()chattappend(readin"n")}}catch(SocketExceptione){chattappend("connectisinterrupted!n")chatclientbtnsetEnabled(true)chatserverbtnsetEnabled(true)chattaddresssetEnabled(true)chattportsetEnabled(true)try{socketclose()}catch(IOExceptionerr){chattappend(errtoString())}}catch(IOExceptione){chattappend(etoString())}}publicvoiddataout(Stringdata){theOutputStreamprintln(data)}}四.程序执行结果:五.心得体会通过编写这个程序我体会最为深刻的一点是系统架构和设计模式的重要性。即使是对于一个并不大的程序代码的组织都是非常重要的因为这关系到日后的维护以及扩展。这个游戏之中有关网络Socket编程或者博弈树算法的知识都可以直接从无所不包的Internet上获取。但是对于系统的架构却完全是自己的事情几千上万行的代码需要通过合适的方法组织起来使程序员编写代码更加有条理更加符合软件工程的标准这才是最重要的。客户端启动客户端通信服务器无法通信是否连接窗口启动软件窗口

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/8

即时聊天工具

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利