下载

1下载券

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

上传资料

关闭

关闭

关闭

封号提示

内容

首页 java聊天软件课程设计

java聊天软件课程设计.doc

java聊天软件课程设计

感情都是私货
2017-09-20 0人阅读 举报 0 0 暂无简介

简介:本文档为《java聊天软件课程设计doc》,可适用于IT/计算机领域

java聊天软件课程设计引言在网络越来越发达的今天人们对网络的依赖越来越多越来越离不开网络由此而产生的聊天工具越来越多类似QQ,网络聊天时一类的聊天系统的发展日新月异因此产生了制作一个类似QQ的网络聊天工具的而且通过制作该程序还能更好的学习网络软件编程知识。网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯。网编程中有两个主要的问题一个是如何准确的定位网络上一台或多台主机另一个就是找到主机后如何可靠高效的进行数据传输。在TCPIP协议中IP层主要负责网络主机的定位数据传输的路由由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠的或非可靠的数据传输机制这是网络编程的主要对象一般不需要关心IP层是如何处理数据的。目前较为流行的网络编程模型是客户机服务器(CS)结构。即通信双方一方作为服务器等待客户提出请求并予以响应。客户则在需要服务时向服务器提出申请。服务器一般作为守护进程始终运行监听网络端口一旦有客户请求就会启动一个服务进程来响应该客户同时自己继续监听服务端口使后来的客户也能及时得到服务。目录引言目录一、题目分析、编写目的、基本功能二、总体设计、概要设计、设计原理三、客户端设计、数据流程图、客户端代码四测试及效果、服务器界面、客户端界面五(心得体会六(参考文献一、题目分析、编写目的能在程序中熟练应用数据流技术熟悉JavaCS程序的结构和工作原理能开发客户端应用程序熟悉Java数据库连接方法能在程序中读写数据库。套接字socket的使用熟悉Java线程技术。、基本功能客户端:可以实现连接服务器端口与相同的端口号的客户端实现聊天。服务器端:用线程技术随时监听客户端socket发出的连接信号。二、总体设计、概要设计本系统运行用JAVA开发采用CS结构系统分为客服端和服务端两大模块使用Socket类建立套接字实现客服端和服务端得通讯。总体数据流图:发送请求返回应答客户端数据流图:发出连接信号发送消息客服端接收并显示消息服务端数据流图:监听客户端的信号服务端设置端口、设计原理、服务器建立一个TCP监听端口等待客户端连接。、客户连接服务器服务器生成一个Socket服务该用户。、服务器接收来自客户端的聊天信息然后遍历转发另一客户端。、客户端之间使用UDP通信模式进行单独聊天不必经过服务器。三、客户端设计、数据流程图开始输入ip输入端口号输连接错误请检查入用户名服务器和端口设置N启动Userjoinwelcome停止定义Framechatclient类控制客户端其中方法FrameChatClient()为析构函数用于初始化Framechatclient类创建客户端界面。方法close()用于断开连接方法sendmsg()用于发送消息。方法actionPerformed()定义事件接口用于响应按钮的事件。方法Run()时定义线程接口发送连接服务器信号。、客户端代码publicclassFrameChatClientextendsJFrameimplementsRunnable,ActionListener{privateJTextFieldtxtServer=privateJTextFieldtxtPort=privateJTextFieldtxtUser=privateJTextFieldtxtChat=privateJButtonbtnConnect=privateJButtonbtnSend=privateJButtonbtnClose=privateJTextAreata=privateSocketclient=privateBufferedReaderin=privateDataOutputStreamout=privateThreadcurThread=publicFrameChatClient(){super("Java聊天程序")txtServer=newJTextField()txtPort=newJTextField()txtUser=newJTextField()txtChat=newJTextField()btnConnect=newJButton("连接")btnSend=newJButton("发送")btnClose=newJButton("关闭")Containercp=thisgetContentPane()Panelp=newPanel()psetLayout(newFlowLayout(FlowLayoutLEFT))))padd(newJLabel("服务器:"padd(txtServer)padd(newJLabel("端口:"))padd(txtPort)padd(newJLabel("用户名:"))padd(txtUser)padd(btnConnect)padd(btnClose)cpadd(p,BorderLayoutNORTH)p=newPanel()psetLayout(newFlowLayout(FlowLayoutLEFT))padd(newJLabel("发言:"))padd(txtChat)padd(btnSend)cpadd(p,BorderLayoutSOUTH)ta=newJTextArea(,)JScrollPanesp=newJScrollPane(ta)cpadd(sp,BorderLayoutCENTER)btnConnectaddActionListener(this)btnCloseaddActionListener(this)btnSendaddActionListener(this)}publicvoidactionPerformed(ActionEvente){if(egetSource()==btnConnect){StringstrServer,strPort,strUserstrServer=txtServergetText()trim()strPort=txtPortgetText()trim()strUser=txtUsergetText()trim()if(strServerequals("")||strPortequals("")||strUserequals("")){return}if(client!=){JOptionPaneshowMessageDialog(this,"请先断开连接!","连接错误",JOptionPanePLAINMESSAGE)return}try{client=newSocket(strServer,IntegerparseInt(strPort))in=newBufferedReader(newInputStreamReader(clientgetInputStream()))out=newDataOutputStream(clientgetOutputStream())outwriteBytes(strUser"n")curThread=newThread(this)curThreadstart()}catch(Exceptionce){JOptionPaneshowMessageDialog(this,"请检查服务器和端口设置!","连接错误",JOptionPanePLAINMESSAGE)}}if(egetSource()==btnClose){close()}if(egetSource()==btnSend){StringstrChat=txtChatgetText()trim()txtChatsetText("")if(strChatequals("")){return}if(strChatequals("Quit")){close()}else{sendMsg(strChat)}}}publicvoidclose(){curThread=if(client!=){try{sendMsg("Quit")inclose()outclose()clientclose()}catch(Exceptionxe){xeprintStackTrace()}client=}else{JOptionPaneshowMessageDialog(this,"未连接到服务器!",",JOptionPanePLAINMESSAGE)}}"错误publicvoidsendMsg(Stringmsg){if(out!=client!=){try{outwriteBytes(msg"n")}catch(IOExceptione){eprintStackTrace()}}}publicvoidrun(){Threadt=ThreadcurrentThread()while(t==curThreadclient!=){try{Stringstr=inreadLine()taappend(str"n")}catch(IOExceptione){eprintStackTrace()}}}四测试及效果、服务器界面、客户端界面五(心得体会经过一个礼拜的课程设计发现了很多问题了解到自身的很多不足同时也更加确定了以后的的学习方向。通过这个礼拜做《聊天程序》发现其实自己的java语言的基础有点差不能及时将学到的东西应用的程序中同时对socket的掌握也不够。本打算自己独立完成的但是很多时候想把程序写出来却有些力不从心最后还是和同组成员协商及请老师帮忙修改才勉强把程序完成。自己感觉自己愧对自己学了这么久的java语言。但是我也确定了自己以后的方向今后的学习中我要不断地积累java语言知识来加强自己写代码的能力。我想只有这样在下次课程设计来临的时候我才能做的好一些。六(参考文献主要参考了《JAVA语言程序设计》(清华出版社朱福喜编著)了解到界面编程多线程编程和网络编程的基本要点。

VIP免券下载文档

用户评价(0)

关闭

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

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

提示

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

文档小程序码

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

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/12

java聊天软件课程设计

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利