Java网络通信技术实现基于CS模式的聊天室Word文件下载.docx
- 文档编号:14346502
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:19
- 大小:123.67KB
Java网络通信技术实现基于CS模式的聊天室Word文件下载.docx
《Java网络通信技术实现基于CS模式的聊天室Word文件下载.docx》由会员分享,可在线阅读,更多相关《Java网络通信技术实现基于CS模式的聊天室Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。
年
01
月
07
日
编号:
036
题目:
采用Java网络通信技术实现基于C/S模式的聊天室
1课程设计教学条件要求eclipse/netbeans/Jbuilder
2课程设计任务
编写一个简易CS版聊天室,多个客户端可以同时发送信息,服务器端监听并显示到客户端页面。
1.要求可以实现多人同时在线聊天。
2.要求客户端和服务器端的界面采用Swing或SWT实现
3.服务器可以向多个客户进行广播通信。
3课程设计报告书主要内容
1需求分析
2总体设计
2.1设计的总体思想与算法描述
2.2模块结构图
2.3各功能模块的功能与处理流程描述
2.4界面设计
3各功能模块程序设计
按照功能模块的功能与处理流程描述给出详细的程序代码,并给出重点语句的注释.
4小结
4课程设计要求
1按时到机房签到,在指定机位上机。
遵守机房纪律。
2独立完成课程设计任务。
指导教师到机位上指导学生和分时段验收学生完成的程序。
3按时提交打印的课程设计报告书。
5课程设计参考书
[1]许文宪懂子建.Java程序设计教程与实训.北京:
北京大学出版社,2005.
[2]辛运帏.Java程序设计.北京:
清华大学出版社,2004
[3][美]Echel,B.Java编程思想(第三版).北京:
机械工业出版社,2005
撰写者:
江伟指导老师:
于海平
本系统是实现c/s模式的聊天室首先要建立侦听服务,这个需求是服务器端的需求。
其次还应实现:
用户登录,包括客户端请求登录以及服务器端响应登录两个过程。
收发聊天信息,包括客户端发送聊天信息以及服务器端转发聊天信息两个过程。
收发系统信息,由服务器端发送给客户端的信息。
用户下线,包括客户端请求下线以及服务器响应请求两个过程,这个与用户登录类似,服务器关闭。
其中我还加入了文件传输功能,方便了用户文件的共享。
Forpersonaluseonlyinstudyandresearch;
notforcommercialuse
2总体设计
2.1设计的总体思想与算法描述
依据需求分析的结果,该系统应设计成一个可以实现多人同时在线聊天功能的聊天软件,下面从软件的整体结构设计、界面设计、变量设计等方面阐述一下系统的总体设计。
依据需求分析结果,设计应实现多人同时在线聊天,就应该分为服务端和用户端两个端口。
用户端把信息发送到服务端,而后服务端再把信息分发到各个用户端。
2.2模块结构图
图2.1模块结构图
2.3界面设计
2.3.1管理员界面
图2.2管理员界面
2.3.2登陆界面
图2.3登陆界面
2.3.3聊天界面
图2.4聊天界面
2.3.4文件发送界面
图2.5文件发送界面
2.3.5接受提示界面
图2.6接受提示界面
2.3.6选择保存界面
图2.7选择保存界面
2.3.7传输成功提示界面
图2.8传输成功提示界面
3程序设计
packagecom.ff;
importjava.io.*;
import.*;
importjava.util.*;
importjavax.swing.*;
importjava.awt.*;
import;
publicclassStartServer{
publicstaticvoidmain(String[]args){
StartServerstartServer=newStartServer();
StartServer.ServerserverFrame=startServer.newServer();
}
classServerextendsJFrame{
privateJScrollPanejp_rec;
privateJScrollPanejp_send;
privateJScrollPanejp_list;
privateJTextAreajta_rec;
privateJTextAreajta_send;
privateJLabellbl_rec;
privateJLabellbl_edit;
privateJListjlist;
privateJButtonbtnSend;
//发送消息按钮
privateJButtonbtnT;
privateDefaultListModellistModel;
privateHashMap<
String,SocketThread>
allUserLink=newHashMap<
();
publicServer(){
init();
try{
ServerSocketserver_socket=newServerSocket(9999);
while(true){
Socketclient_socket=server_socket.accept();
SocketThreaddealThread=newSocketThread(
client_socket);
newThread(dealThread).start();
}
}catch(Exceptionex){
ex.printStackTrace();
}
}
publicvoidinit(){
this.setTitle("
管理员平台"
);
this.setSize(800,400);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLocationRelativeTo(this);
Containerc=this.getContentPane();
c.setLayout(null);
jta_rec=newJTextArea("
"
jta_send=newJTextArea("
jp_rec=newJScrollPane();
jp_send=newJScrollPane();
jp_list=newJScrollPane();
lbl_rec=newJLabel("
--消息记录--"
lbl_edit=newJLabel("
--文本编辑--"
btnSend=newJButton("
发送"
btnT=newJButton("
T除成员"
listModel=newDefaultListModel();
jlist=newJList(listModel);
jlist.setBorder(BorderFactory.createTitledBorder("
在线成员"
));
jp_rec.getViewport().add(jta_rec);
jp_send.getViewport().add(jta_send);
jp_list.getViewport().add(jlist);
jta_rec.setLineWrap(true);
jta_send.setLineWrap(true);
jta_rec.setEditable(false);
lbl_rec.setBounds(30,10,80,20);
jp_rec.setBounds(30,30,450,100);
lbl_edit.setBounds(30,130,80,20);
jp_send.setBounds(30,150,450,100);
btnSend.setBounds(350,260,80,20);
jp_list.setBounds(500,30,120,220);
btnT.setBounds(520,260,80,20);
c.add(lbl_rec);
c.add(lbl_edit);
c.add(jp_rec);
c.add(jp_send);
c.add(btnSend);
c.add(jp_list);
c.add(btnT);
this.setVisible(true);
classSocketThreadextendsBaseTrans{
privatebooleanthreadON=true;
publicSocketThread(Socketclient_socket){
super(client_socket);
btnSend.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
messageEvent("
code=001;
msg=※※※※※※公告"
+newDate().toLocaleString()+"
※※※※※※※\r\n"
+jta_send.getText());
jta_send.setText("
}
});
btnT.addActionListener(newActionListener(){
if(jlist.getSelectedValue()!
=null){
SocketThreadst=allUserLink.get(jlist.getSelectedValue().toString().trim());
allUserLink.remove(jlist.getSelectedValue().toString().trim());
st.sendMessage("
code=0"
messageEvent("
+jlist.getSelectedValue()+"
被管理员踢了出去!
st.close
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 网络 通信 技术 实现 基于 CS 模式 聊天室