欢迎来到天天文库
浏览记录
ID:4148450
大小:121.88 KB
页数:17页
时间:2017-11-29
《用java实现一个聊天程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、西安电子科技大学软件学院Java技术用java实现一个聊天程序刘惠目标¢复习知识¢结合具体应用,将各个分离的知识点有机的结合。¢结合具体应用,经历分析,设计,编码,测试这几个步骤,掌握软件开发的一般方法。问题陈述实现一个聊天程序功能分析¢用户注册¢用户登陆¢一个聊天室¢多个客户同时聊天¢不能重复登陆¢每个人能够看到当前聊天室的情况,有多少人,都有哪些人在聊天。¢多个聊天室¢能够私聊需要的技术点¢语言基础知识¢网络通信¢GUI¢多线程¢JDBC¢I/O¢一些基本类库网络通信(服务器端)在此聊天室应用程序中,创建一个套接
2、字,用它建立与其他机器的连接。从套接字得到的结果是一个InputStream以及OutputStream,以便将连接作为一个IO流对象对待。有两个基于数据流的套接字类:ServerSocket,服务器用它“侦听”进入的连接;Socket,客户用它初始一次连接。一旦客户申请建立一个套接字连接,ServerSocket就会返回(通过accept()方法)一个对应的服务器端套接字,以便进行直接通信。此时可以利用getInputStream()及getOutputStream()从每个套接字产生对应的InputStream和
3、OutputStream对象。但这些数据流必须封装到缓冲区内。聊天协议设计¢为了编写客户-服务器应用程序,必须建立两个程序:客户和服务器。在这两个程序中,必须定义这两个应用程序将如何通信。客户和服务器进行通信所必须遵守的规则就是协议。协议定义客户-服务器程序如何交户。¢首先客户连接到服务器,而服务器则以一条指示聊天室目前在线用户名的信息响应该客户,并同时通知其他客户有新客户加入。然后,客户能够向服务器请求发送对话消息给聊天室内的任何人。服务器则可以响应他的请求。最后,客户会要求结束对话,而服务器中止该连接,并通知其他
4、客户该客户已离开的信息。聊天协议协议形式发送端功能LOGON
5、name
6、passwd客户端客户端向服务器请求连接REGISTER
7、name
8、passwd客户端客户端向服务器注册新用户QUIT客户端客户端准备断开连接MSG
9、name
10、message客户端客户向服务器发送聊天信息TAKEN
11、name服务器向请求连接客户发送用户名已被用信息NOTEXIST
12、name服务器向客户说明登录用户名不存在EPASSWD
13、name服务器向客户说明密码错误JOIN
14、name服务器向客户端发送新加入客户名LEAVE
15、name服务器向客户
16、端发送离开的客户名MSG
17、name1对name2说
18、message服务器向客户端发送name1对name2的聊天信息PEOPLE
19、n
20、name(1)
21、…
22、name(n-1)服务器向新连接的客户发送聊天室客户的相关信息流I/O操作的设计¢在Java中,能够读取一个字节序列的对象称作一个输入流;能够写一个字节序列的对象则称作一个输出流。因为面向字节的流不方便用来处理存储为Unicode(每个字符使用两个字节)的信息,而聊天程序不可避免会用到汉字传输,所以应该使用用来处理Unicode字符的类层次,这些类派生自抽象类Rea
23、der和Writer,它们用于读写双字节的Unicode字符,而不是单字节字符。¢类StringToKenizer允许应用程序将字符串分解为一个个标记(单词)程序界面设计¢Swing¢事件处理线程设计¢此聊天程序允许多个客户同时在聊天室中,这样服务器需要同时处理多个客户的请求。因此,解决这个问题的关键就是多线程处理机制。程序中为每一个客户建立一个客户线程,这样就可以实现多客户同时在线工作。JDBC¢记录登陆用户扩充¢多个聊天室¢支持私聊
此文档下载收益归作者所有