java课程设计报告网络聊天室.doc
《java课程设计报告网络聊天室.doc》由会员分享,可在线阅读,更多相关《java课程设计报告网络聊天室.doc(11页珍藏版)》请在沃文网上搜索。
1、计算机与信息工程系Java课程设计报告专业 班级 学号 姓名 报告完成日期 指导教师 评语:成绩:批阅教师签名: 批阅时间:网络聊天室一、设计任务与目标 现在社会是信息化的社会,什么都追求着快、新、好。在这种快节奏的生活方式中,人们之间的通讯联系就显得非常的重要了。商业之间的合作,人们之间的友谊交往,甚至热门谈到的网上恋爱等等都需要通讯联系。而过去的鸿雁传书已经是满足不了现代人的欲望了。既然这网络这么的流行,过去的联系方式又这么的落后,因此人们的目光就转向了网络通讯。聊天工具就是一种网上很普遍但是又很重要的通讯方式。本聊天软件旨在为同一局域网用户间提供便利的局域网服务,局域网用户可以通过此聊天
2、软件在各终端相互发送聊天信息,同时可以快速传送文件,方便局域网用户间的快速有效通信。二、.设计思路整体方案的制定服务器端后台数据库线程处理线程处理TCP套接字监听端口TCP套接字 客户端2UDP套接字UDP套接字客户端1TCP套接字TCP套接字聊天工具的系统运行图基本设计思想:采用客户机/服务器(C/S)结构。即通信双方一方作为服务器等待客户提出请求并予以响应。客户则在需要服务时向服务器提出申请。服务器一般作为守护进程始终运行,监听网络端口,一旦有客户请求,就会启动一个服务进程来响应该客户,同时自己继续监听服务端口,使后来的客户也能及时得到服务。客户端的设计用户之间通过UDP连接来实现用户间的
3、通讯.每个用户在该聊天工具进入主界面时便创建一个线程,无限监听其他好友发来的消息,如果某个好友发来消息,便接受该消息并弹出聊天界面和显示其发来的消息.聊天消息的接受的部分的核心程序流程如下图所示:线程继续监听弹出的聊天界面和显示的信息接到信息线程无限监听客户端中实现UDP的线程 图 聊天消息的接受的部分的核心程序流程聊天消息的发送的部分的核心程序流程如下图所示:建立Socke实现通信并发送聊天的信息输入聊天的信息客户端中聊天界面 图 聊天消息的发送的部分的核心程序流程服务器端的设计服务器与客户间通过套接口Socket(TCP)连接。在java中使用套接口相当简单,Java API为处理套接口的
4、通信提供了一个类.Socket.,使得编写网络应用程序相对容易服务器采用多线程以满足多用户的请求,通过JDBC与后台数据库连接,并通过创建一个ServerSocket对象来监听来自客户的连接请求,默认端口为8888,然后无限循环调用accept()方法接受客户程序的连接。服务器程序核心部分的流程如下图所示:收到请求Find收到请求new收到请求Login结束线程无限监听客户请求服务器端创建一个线程程处理用户登陆信息处理用户查找信息处理用户注册信息 三、具体实现服务器端实现代码:import java.io.*;import .*;import java.util.*;public class
5、ChatServer boolean started=false;ServerSocket s=null;List clients=new ArrayList();public static void main(String args) new ChatServer().start(); /*启动线程*/public void start() try s=new ServerSocket(8888); started=true; catch(BindException e2) System.out.println(端口使用中); System.out.println(请关掉相关程序,并重新运行
6、服务器!); System.exit(0); catch(IOException e) e.printStackTrace(); trywhile(started) /*当客户端有连接上时开始接收*/ Socket ss=s.accept(); Client c=new Client(ss);System.out.println(A have connect!); new Thread(c).start(); clients.add(c); catch (IOException e) /*突然关闭客户端异常处理*/System.out.println(Client closed!); fina
7、llytry s.close(); catch (IOException e) e.printStackTrace(); class Client implements Runnableprivate Socket ss;private DataInputStream dis=null;private DataOutputStream dos=null;private boolean bconnected=false;public Client(Socket ss) /*接收客户端信息*/this.ss=ss;try dis=new DataInputStream(ss.getInputStr
8、eam();dos=new DataOutputStream(ss.getOutputStream(); bconnected=true; catch (IOException e) e.printStackTrace();public void send(String str) /*发送客户端信息*/try dos.writeUTF(str); catch (IOException e) clients.remove(this);System.out.println(对方退出了!);/e.printStackTrace();public void run() try while(bconne
9、cted) String st=dis.readUTF(); System.out.println(st); for(int i=0;iclients.size();i+) Client c=clients.get(i); c.send(st); System.out.println(a string send!); catch(EOFException e) System.out.print(Client closed!); catch (IOException e) e.printStackTrace(); finally try if(dis!=null) dis.close(); if
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 课程设计 报告 网络 聊天室