Java网络通信技术实现基于CS模式的聊天室.docx

上传人:b****3 文档编号:1430525 上传时间:2022-10-22 格式:DOCX 页数:19 大小:123.67KB
下载 相关 举报
Java网络通信技术实现基于CS模式的聊天室.docx_第1页
第1页 / 共19页
Java网络通信技术实现基于CS模式的聊天室.docx_第2页
第2页 / 共19页
Java网络通信技术实现基于CS模式的聊天室.docx_第3页
第3页 / 共19页
Java网络通信技术实现基于CS模式的聊天室.docx_第4页
第4页 / 共19页
Java网络通信技术实现基于CS模式的聊天室.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

Java网络通信技术实现基于CS模式的聊天室.docx

《Java网络通信技术实现基于CS模式的聊天室.docx》由会员分享,可在线阅读,更多相关《Java网络通信技术实现基于CS模式的聊天室.docx(19页珍藏版)》请在冰豆网上搜索。

Java网络通信技术实现基于CS模式的聊天室.docx

Java网络通信技术实现基于CS模式的聊天室

学号

5114

 

武汉科技大学城市学院

 

课程设计报告

 

课程设计名称Java课程设计

题目

采用Java网络通信技术实现基于C/S模

式的聊天室

院系

信息工程学部

专业

信息管理与信息系统

班级

1班

姓名

张峰

指导教师

于海平

 

2010

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

 

撰写者:

江伟指导老师:

于海平

 

1需求分析

本系统是实现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;

privateHashMapallUserLink=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(){

publicvoidactionPerformed(ActionEvente){

if(jlist.getSelectedValue()!

=null){

SocketThreadst=allUserLink.get(jlist.getSelectedValue().toString().trim());

allUserLink.remove(jlist.getSelectedValue().toString().trim());

st.sendMessage("code=0");

messageEvent("code=001;msg=※※※※※※公告"+newDate().toLocaleString()+"※※※※※※※\r\n"+jlist.getSelectedValue()+"被管理员踢了出去!

");

st.close

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1