JAVA聊天室课程设计报告含源代码压缩文件

合集下载

Java课程设计聊天室(含代码).docx

Java课程设计聊天室(含代码).docx

Java 程序课程设计任务书JAVA 聊天室的系统的设计与开发主要内容:用 JAVA 实现基于C/S 模式的聊天室系统。

聊天室分为服务器端和客户端两部分,服务器端程序主要负责侦听客户端发来的信息,客户端需要登陆到服务器端才可以实现正常的聊天功能。

2.具体要求(包括技术要求等):系统的功能要求:A.服务器端主要功能如下:1.在特定端口上进行侦听,等待客户端连接。

2.用户可以配置服务器端的侦听端口,默认端口为8888 。

3.向已经连接到服务器端的用户发送系统消息。

4.统计在线人数。

5.当停止服务时,断开所有的用户连接。

B.客户端的主要功能如下:1.连接到已经开启聊天服务的服务器端。

2.用户可以配置要连接的服务器端的IP 地址和端口号。

3.用户可以配置连接后显示的用户名。

4.当服务器端开启的话,用户可以随时登录和注销。

5.用户可以向所有人或某一个人发送消息。

学习并掌握一下技术:Java JavaBean等熟练使用一下开发工具:Eclipse, JCreator 等实现系统上诉的功能。

3.进度安排:12 月 28 日~ 12 月 29 日:课程设计选题,查找参考资料12 月 30 日~ 1 月 1 日:完成系统设计1 月2 日~ 1 月 5 日:完成程序代码的编写1 月 6 日:系统测试与完善1 月 7 日:完成课程设计报告,准备答辩主要参考文献:[1]. 张广彬孟红蕊张永宝.Java课程设计(案例精编)[M]. 清华大学出版社.2007 年版摘要在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,例如,国外的ICQ、国内腾讯公司开发的OICQ。

基于 Java 网络编程的强大功能,本次毕业设计使用Java 编写一个聊天系统。

一般来说,聊天工具大多数由客户端程序和服务器程序外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/ 服务器架构模式通过Java 提供的 Soket 类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java 提供的多线程功能用多线程可完成多点对多点的聊天,数据库管理系统用 SQL Server2000 完成并通过 JDBC-ODBC桥访问数据库。

java网络聊天室课程设计报告(内附代码)之欧阳歌谷创作

java网络聊天室课程设计报告(内附代码)之欧阳歌谷创作

课程设计欧阳歌谷(2021.02.01)网络聊天室院(系) 别信电学院班级计算102学号姓名指导教师时间418—510课程设计任务书题目网络聊天室课程设计系 (部) 信电学院专业计算机科学与技术班级计算102学生姓名学号4月 18 日至 5 月 10 日共 4 周指导教师(签字)系主任(签字)年月日成绩评定表目录课程设计概述21.1问题描述21.2功能需求分析21.3环境需求分析2学生信息管理系统软件总体设计22.1整体思路22.2总体设计流程图3学生信息管理软件详细设计43.1.界面设计43.2通信功能实现方法6参考文献36摘要私達の実践の能力を高めるため、学んだ知識を運用することができて行って更に創造して、学校は特に2週間手配して、私達にVisual C++の課程の設計の実習を行わせます.このファイルの詳しい説明はVisual C++6.0環境の下で、1つのソフトウェアの過程を設計して、このソフトウェアは各種のデータの個数を統計したのです。

このソフトウェアの機能は、ユーザーは1段の文字を入力して、ソフトウェアは文字の中の各類のデータの数を記録して、英文のデータの数、数字のデータの数、空欄のデータの数とそれのタイプのデータの数を含んで、そしてそれらを明らかに示します.以下、課程を通して説明を設計して、データはソフトウェアの説明を統計して、プログラムは説明を調整して、総括などの方面を開発して、詳しくこのプログラムの製作の過程を説明して、作用、各種の実行することができる操作.关键字:データの統計,VC++6.0, ヘッドファイル课程设计概述1.1问题描述`随着计算机网络日新月异的发展,人们的交流方式越来越多,传统的交流方式,如:信件、电报、电话等已经难以满足人们的交流要求,在互联网上即时的和好友取得联系,已经成为当今社会人们主流的联系方式。

因此,两台计算机之间进行即时通讯、发送文件等交流方式已经成为必然潮流。

JV聊天室课程设计报告源代码压缩文件

JV聊天室课程设计报告源代码压缩文件

南京晓庄学院《JAVA程序设计》课程设计报告成绩:信息工程学院2016年6月目录1 引言 (4)1.1 java聊天室开发背景 (4)2.1.4 java聊天室目录结构说明 (9)2.2 java聊天室功能结构 (10)3 详细设计 (12)3.1 java聊天室模块实现 (12)3.1.1 XX模块实现 (12)天工具越来越多,类似QQ、MSN,网络聊天时一类的聊天系统的发展日新月异,因此产生了制作一个有简单聊天功能的网络聊天程序;而且通过制作该程序还能更好的学习网络软件编程知识。

本程序设计简单可以实现在同一局域网的聊天,程序可以自动扫描已经上线的用户,上线用户可在同一聊天界面中实现群聊。

如果需要与其中的用户进行交谈,则只需双击右侧用户列表,读取对方IP地址,便可在下面的输入框内输入信息进行发送,实现一对一私聊功能。

1.1Java聊天室开发的目的和意义目的:(1)理解进程消息通信的概念,如何实现两个创建进程之间的数据传递。

(2)理解进程共享变量的进程通信。

(3)熟悉并掌握java语言的代码编写1.2完成的主要工作(1)需求分析与总体设计、详细设计、代码分析(2)实现程序所能运行的功能(3)选择Window系统,并选择该操作系统中一种进程通信的方式。

(4)运用Eclipse开发工具和java语言实现该应用程序。

2 需求分析和总体设计2.1 需求分析与设计思路2.1.1 关键技术说明程序开发环境与运行环境介绍:JDK(Java Development kit)是 SUN公司提供的一套Java开发环境,通常称之为它主要包括了一些常用的JDK工具、执行时需要的函数库、与C连接时所需的文件及一些Java应用程序范例等。

是一个编写Java的Applet小程序和应用程序的程序开发环境。

JDK是整个Java的核心,包括了Java 运行环境(Java Runtime Envirnment),一些Java工具和Java的核心类库(Java API)。

Java局域网聊天程序课程设计(含代码)

Java局域网聊天程序课程设计(含代码)

JAVA聊天室的系统的设计与开发1.主要内容:用JA V A实现基于C/S模式的聊天室系统。

聊天室分为服务器端和客户端两部分,服务器端程序主要负责侦听客户端发来的信息,客户端需要登陆到服务器端才可以实现正常的聊天功能。

2.具体要求(包括技术要求等):系统的功能要求:A.服务器端主要功能如下:1.在特定端口上进行侦听,等待客户端连接。

2.用户可以配置服务器端的侦听端口,默认端口为8888。

3.向已经连接到服务器端的用户发送系统消息。

4.统计在线人数。

5.当停止服务时,断开所有的用户连接。

B.客户端的主要功能如下:1.连接到已经开启聊天服务的服务器端。

2.用户可以配置要连接的服务器端的IP地址和端口号。

3.用户可以配置连接后显示的用户名。

4.当服务器端开启的话,用户可以随时登录和注销。

5.用户可以向所有人或某一个人发送消息。

学习并掌握一下技术:Java JavaBean 等熟练使用一下开发工具:Eclipse,JCreator 等实现系统上诉的功能。

3.进度安排:12月28日~ 12月29日:课程设计选题,查找参考资料12月30日~ 1月1日:完成系统设计1月2日~ 1月5日:完成程序代码的编写1月6日:系统测试与完善1月7日:完成课程设计报告,准备答辩4.主要参考文献:[1].张广彬孟红蕊张永宝.Java课程设计(案例精编)[M].清华大学出版社.2007年版摘要在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,例如,国外的ICQ、国内腾讯公司开发的OICQ。

基于Java网络编程的强大功能,本次毕业设计使用Java编写一个聊天系统。

一般来说,聊天工具大多数由客户端程序和服务器程序外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构模式通过Java提供的Soket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能用多线程可完成多点对多点的聊天,数据库管理系统用SQL Server2000完成并通过JDBC-ODBC桥访问数据库。

JAVA聊天程序设计代码及报告

JAVA聊天程序设计代码及报告

一.系统需求分析之阿布丰王创作网络聊天室通常直称聊天室,是一种人们可以在线交谈的网络论坛,在同一聊天室的人们通过广播消息进行实时交谈.在现今信息时代,越来越多的聊天工具被应用,java语言是现今流行的网络编程语言,它具有面向对象,与平台无关,平安,多线程等特点.使用java语言不单可以实现年夜型企业级的分布式应用系统,还能够为小型的的,嵌入式设备进行应用法式的开发.面向对象的开发是现今世界最流行的开发方法,它不单具有更贴近自然地语义,而且有利于软件的维护和继承,熬炼我们熟练地应用面向对象的思想和设计方法解决实际问题的能力.本法式正是用java语言实现了简单聊天功能.它是图形界面,线程,流与文件系统等技术的综合应用.其界面主要采纳了java.awt包,java.swing包等.二.系统总体设计1.对性能的规定由于本软件知识一个聊天法式,法式只提供用户之间的聊天功能,故对网络传输数据要求不是很高,只要正常的传输速度就可以了.2数据管理IP地址(IP),端口(Port)3.开发环境本软件采纳Java语言编写,Java语言是一种跨平台的编程语言,所以本软件对把持系统没有特另外要求.而网络传输方面采纳TCP/IP网络传输协议或者是RMI.4.设计概要(1)本软件客户端与用户共用一段法式.客户端编译运行后,在窗口选择侦听.用户编译运行后,在窗口选择连接.(2)本软件实现的功能有1)允许服务器侦听客户端,客户端连接到服务器2)允许服务区与客户端之间进行聊天;3)允许服务器与客户端更改布景颜色;4) 允许服务器与客户端更改字体颜色;5)服务器与客户端时,会显示内容发送时间;6)允许服务器与客户端用鼠标点击“发送”,按ENTER键均可发送内容7)允许服务器与客户端用鼠标点击关闭时关闭聊天窗口三.系统详细设计1.代码功能描述(1)法式中引入的包:import java.awt.*;import java.awt.event.*;import javax.swing.*;import .*;import java.io.*;(2)代码中自界说的类:类名:chatHouse继承的类:JFrame实现的接口:ActionListener, Runnable作用:构造服务器界面以及客户端界面.界说的对象: TextArea ta;JTextField ip;JTextField port;JButton btn_server;JButton btn_client;JButton btn_backGroundCol;JButton btn_fontCol;JTextField send_text;JButton btn_send;JButton btn_close;JLabel pic;Socket skt;构造方法:public chatHouse()主要成员方法:public void run()public void actionPerformed(ActionEvent e)public void doServer()public void doSend()2.源代码[chatHouse.java]import java.awt.*;import java.awt.event.*;import javax.swing.*;import .*;import java.io.*;import java.util.*;public class chatHouse extends JFrame implements ActionListener, Runnable{private TextArea ta;private JTextField ip;private JTextField port;private JButton btn_server;private JButton btn_client;private JButton btn_backGroundCol;private JButton btn_fontCol;private JTextField send_text;private JButton btn_send;private JButton btn_close;private JLabel pic;private Socket skt;public void run(){try{BufferedReader br = new BufferedReader(new InputStreamReader(skt.getInputStream()));while(true){String s = br.readLine(); // 从网络读if(s==null) break;ta.append(s + "\n");}}catch(Exception e){e.printStackTrace();}}public void actionPerformed(ActionEvent e){if(e.getSource()==btn_server){doServer();}if(e.getSource()==btn_client){doClient();}if(e.getSource()==btn_send){doSend();}}public void doServer(){try{ServerSocket server = new ServerSocket(Integer.parseInt(port.getText()));skt = server.accept();ta.append("连接胜利!\n");new Thread(this).start();}catch(Exception e){ta.append("服务器启动失败!\n");}}public void doClient(){try{skt = new Socket(ip.getText(), Integer.parseInt(port.getText()));ta.append("连接胜利!\n");new Thread(this).start();}catch(Exception e){ta.append("连接失败!\n");}}public void doSend(){Calendar c=Calendar.getInstance();int y=c.get(c.YEAR);int M=c.get(c.MONTH)+1;int d=c.get(c.DAY_OF_MONTH);int h=c.get(c.HOUR_OF_DAY);int mm=c.get(c.MINUTE);int ss=c.get(c.SECOND);try{PrintWriter pw = new PrintWriter(skt.getOutputStream());String s = send_text.getText();if(s==null) return;ta.append(y+""+M+""+d+""+h+":"+mm+":"+ss+"\n");ta.append(s+"\n");pw.println(y+""+M+""+d+" "+h+":"+mm+":"+ss);pw.println(s);pw.flush();send_text.setText("");}catch(Exception e){ta.append("发送失败!\n");}}public chatHouse(){super("聊天室");this.setBounds(100,100,550,430);Container cc = this.getContentPane();JPanel p1 = new JPanel();cc.add(p1, BorderLayout.NORTH);JPanel p2 = new JPanel();cc.add(p2,BorderLayout.CENTER);JPanel p3 = new JPanel();cc.add(p3,BorderLayout.SOUTH);pic=new JLabel(new ImageIcon("12.gif")); cc.add(pic,BorderLayout.EAST);p1.add(new JLabel("IP: "));ip = new JTextField("127.0.0.1", 10);p1.add(ip);p1.add(new JLabel("Port: "));port = new JTextField("7777", 4);p1.add(port);btn_server = new JButton("侦听");p1.add(btn_server);btn_client = new JButton("连接");p1.add(btn_client);btn_backGroundCol =new JButton("布景色"); p1.add(btn_backGroundCol);btn_fontCol =new JButton("字体颜色");p1.add(btn_fontCol);p2.setLayout(new BorderLayout())ta = new TextArea();p2.add(ta, BorderLayout.CENTER);send_text = new JTextField("Hello.");p2.add(send_text, BorderLayout.SOUTH);btn_send = new JButton("发送");p3.add(btn_send, BorderLayout.WEST);btn_close =new JButton("关闭");p3.add(btn_close, BorderLayout.CENTER);//"关闭"按钮监听器btn_close.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){System.exit(100);}});// 布景变色监听btn_backGroundCol.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){JColorChooser chooser4=new JColorChooser();Color color=chooser4.showDialog(null,"布景颜",Color.yellow);ta.setBackground(color);}});//字体变色监听btn_fontCol.addActionListener(newActionListener(){public void actionPerformed(ActionEvent e){JColorChooser chooser4=new JColorChooser();Color color=chooser4.showDialog(null,"字体颜色",Color.black);send_text.setForeground(color);ta.setForeground(color);}});//按ENTER键可发送监听btn_server.addActionListener(this);btn_client.addActionListener(this);btn_send.addActionListener(this);setDefaultClo搜索引擎优化peration(JFrame.EXIT_ON_CLOSE);send_text.addKeyListener(new KeyAdapter(){public void keyPressed(KeyEvent e){if(e.getKeyCode()==KeyEvent.VK_ENTER)doSend();}});}public static void main(String[] args){new chatHouse().setVisible(true);}}import java.util.*;3.法式测试编译运行法式后,先选择对方IP,选择同样的Port.服务器先侦听,客户端再连接.连接胜利,窗口会显示“连接胜利!”字样.接下来就可以聊天了.(1) 服务器与客户端聊天.(2)服务器与客户端聊天.服务器将布景颜色设为粉红,字体颜色设为蓝色.客户端将布景颜色设为蓝色,字体颜色设为红色.四.小结1.通过本次课程设计,使得自己理解理论和实践相结合起来,从理论中得出结论,才华真正掌握这门技术,也提高了自己自力思考的能力,在设计的过程中,可以自己解决.真正体会到要将一门知识学的更深入,必需加强实践,多练习,才华发现问题所在.2..本法式实现的功能还比力简单不够完善,从中,我知道了自己的缺乏之处,决心增长自己的知识,设计更加好的法式,实现各种更加复杂的功能,如:传输文件,图片.以及登岸界面,昵称等.3.总的来说,这次实训对我很有帮手.让我学会了的不只是设计JAVA聊天室,更让我学会主动学习,而不是主动接收.这样才华更。

java课程设计报告__利用java实现简单聊天室(可编辑)

java课程设计报告__利用java实现简单聊天室(可编辑)

java课程设计报告_-_利用JAVA实现简单聊天室利用JAVA实现简单聊天室1.课程设计目的在当今的信息时代,越来越多的聊天工具被应用,Java语言是当今流行的网络编程语言,它具有面向对象、与平台无关、安全、多线程等特点。

使用Java 语言不仅可以实现大型企业级的分布式应用系统,还能够为小型的、嵌入式设备进行应用程序的开发Java语言的重要概念及其面向对象的特性,锻炼我们熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了Java程序设计课程设计。

此次课程设计的题目为简单的聊天室,通过做巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、JCreator等开发工具的运用,拓宽常用类库的应用。

使我们通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。

2.设计方案论证2.1设计思路Java是一种简单的,面对象的,分布式的,解释的,键壮的安全的,结构中立的,可移植的,性能很优异的多线程的,动态的语言Java去掉了C++语言的许多功能,如:指针运算、结构、typedefs、#define让Java的语言功能很精炼,并增加了一些很有用的功能,如自动收集碎片。

这将减少平常出错的50%。

而且,Java很小,整个解释器只需215K的RAM。

Java简单聊天室,它是图形界面、线程、流与文件等技术的综合应用其界面主要采用了包程序实现了的基本功能有:Pentium 2.8GHz以上内存:256MB以上硬盘空间:80G以上操作系统:Windows XP运行环境:JDK,JCreator 2.5 程序功能图及程序相关说明主功能框图图1 程序基本框图表1 聊天室基本功能表序号文件名主要功能1ServerHost被服务器调用2Client显示聊天室3ClientUser被客户端调用4LogIn注册登陆5Objecting连接服务器6Server启动服务器程序代码是说明程序中引入的包:package Chat;import .*;import java.awt.*;import t.*;import javax.swing.*;import java.util.*;import java.io.*;(1)服务器端代码中用户自定义类:类名:Server作用:服务器启动继承的接口名:ActionListenerpublic class Server implements ActionListener定义的对象:count //记录点机关闭按钮次数2次关闭soconly //只有SOCKET,用于群发sockets //所有客户的SOCKETsocket_thread //Socket所在的线乘,用于退出;frame // 定义主窗体panel//定义面板start,stop //启动和停止按钮主要成员方法:public void center //定义小程序查看器的位置public void actionPerformed //定义处理异常机制定义子类:serverRun,Details继承的父类名:Threadclass serverRun extends Thread //启线乘用于接收连入的Socket class Details extends Thread //具体处理消息的线乘,只管发送消息创建一个ServerSocket 对象,用于接受指定端口客户端的信息ServerSocket server new ServerSocket "1234" ;接受请求时候,通过accept 方法,得到一个socket对象。

(完整)JAVA聊天室附完整代码

(完整)JAVA聊天室附完整代码

专业课程设计I基于JAVA的聊天室设计与实现一、课题内容和要求基于网络的文本交互软件的设计和实现,设计和实现一个简单的基于网络的文本消息发送和接收软件。

基本要求:该软件能实现文本消息发送和接收功能.提高要求(1):支持以多播方式发送文本消息,提高要求(2):性能稳定,界面友好.按课程设计报告的要求写出详细的设计和实现报告。

二、设计思路分析聊天室是一项进行文本交互的软件,应用广泛,并且实用性强的一个非常典型的人机交互系统。

在信息世界里,聊天工具的使用是非常频繁的,如MSN、QQ、校内通之类的聊天工具许多人都正在使用。

此次设计的聊天室系统主要针对文本信息的传送和接收,不能像QQ一样进行图片、音频、视频等文件的传输.虽然其功能简单,但是在开发技术和过程中,能够充分学习和使用JAVA 的技术,进一步培养了面向对象程序设计的思想,加深对面向对象程序设计四大特性的理解.人们日常生活中越来越多地使用聊天室这项应用来为自己的工作和学习服务.一个操作简单,界面友好、运行稳定的聊天室对于小型局域网的用户可以起到很好的交流作用。

所谓聊天室就是一个可以让许多用户同时互相通信的网上园地,个人用户可以通过聊天室将自己融入整个主流社会中。

根据目前使用聊天室的用户需求显示,用户对于聊天室主要有以下几点要求:(1)聊天功能:可以实时接收和发送信息,并能支持公聊和私聊的的方式,能够查看聊天记录,聊天过程中能对字体、表情等进行设定等.(2)用户功能:可以随时注册和登录及注销,并能选择性加好友和删除好友以及查看对方的开放信息,还能看到对方的登录状态.(3)文件传输功能:用户可以共享资源,能发送及接收文件。

(4)保密功能:用户可以设定自己的保密状态,使某些信息对于其他用户是不可见的。

(5)系统稳定:客户端与服务端的连接稳定,不出现或者少出现连接不上的情况。

三、概要设计1、聊天室的简要功能介绍该简易聊天室是为许多喜爱聊天的用户开发设计的,和许多大型的网络聊天室相比该小聊天室功能比较简单,但能实现基本的聊天功能,点对多、点对点聊天和基本的用户功能,登录、注销、查看在线用户等。

JAVA实训报告聊天室

JAVA实训报告聊天室

JAVA实训报告--聊天室《Java实训》设计报告《Java实训》设计报告电子信息工程学院专业:软件技术班级:1班实训:谈天室工程简介工程名称谈天室工程功能运用java程序编写谈天室,实现简洁的谈天功能。

它是图形界面,线程,流与文件系统等技术的综合应用。

其界面主要采纳了java.awt包,java.swing包以及java.util包等。

程序实现了谈天室的根本功能,其中有:1、启动效劳器。

2、进入客户端界面。

3、登录谈天室。

4、发送信息(实现按回车键发送消息)。

5、关闭效劳器工程目的1.能在程序中娴熟应用Java多线程技术2.熟识JavaC/S程序的构造和工作原理3.能开发客户端应用程序4.会编写效劳器端多线程应用程序。

5.熟识Java数据库连接方法,能在程序中读写数据库主要技术Java编程语言、javaSwing组件开发环境jdk1.6.0_10项目特点使用组件构建的C/S应用程序各项功能的组织合理搭配应用图标掌握功能实现技术重点构建基于C/S架构的应用程序 Swing组件应用大事监听的应用方法的编写技术难点Swing组件的应用大事监听器的使用特别处理方法简便的选择系统总体设计1、设计思路谈天系统的设计跟一般网站设计有着很多不同的地方,一般网站设计所考虑的因素,例如,一般网站需要对布局进入大量美化以及动画设计等等,而谈天室只要供应满意访客双方直接实时谈天即可。

因此,在设计谈天系统的过程中,必需要考虑好以下几个设计要点:在Internet上的谈天程序一般都是以效劳器供应效劳端连接响应,使用者通过客户端程序登录到效劳器,就可以与登录在同一效劳器上的用户交谈,这是一个面对连接的通信过程。

因此,程序要在TCP/IP环境下,实现效劳器端和客户端两局部程序。

1.首先通过继承JFrame类构造效劳器界面。

2.设计客户端程序使其能够完成正常的通信功能。

3.设计监听程序,使其显示登录的ip地址端口号,以及用户昵称,通过侦听按钮可以调用客户端程序,实现谈天功能。

Java网络聊天室课程设计说明书(含源程序)

Java网络聊天室课程设计说明书(含源程序)

操作系统课程设计报告目录一.设计要求和目的 (3)二.背景知识 (4)三.客户端设计 (5)四.客户端主要代码 (6)五.设计体会 (9)课程设计摘要随着网络信息时代的来临,Internet 应用越来越广泛人们越来越习惯于在网上获取和交流信息。

据调查显示,80%以上的人上网都会打开聊天工具来聊天,而几乎每一个年轻人都会去聊天。

使用网上聊天已经成为现代年轻人一种新的交往方式。

聊天室更适合于陌生人之间进行较为主观、感兴化的讨论。

所以有大部分的人会进入聊天室聊天它会给人一个完全自由的聊天世界。

因此我们联系所学的操作系统、数据库和MFC知识决定做一个简易的聊天系统。

一、设计要求和目的此课题是实现一个即时通信系统完成1:进程间通信、并发(同步/互斥)、文件读写2:内存管理、Dll、Windows消息机制、IO。

课题任务分工:客户端子系统:在客户端系统的功能实现上,可以分为以下几个部分:[1]进程信息的输入系统把用户进程要求发送的信息由键盘输入从文件读取。

这部分功能是客户端子系统的基本部分,这个功能是以后各个部分的基础。

系统要求做到即能够从其它子系统中共享一部分信息[2]进程信息的存储:将进程的信息存储到客户端系统中,以及将发送的信息保存在文件中,以备以后进程之间通信确认以及查询。

[3]通信数据的传递及接收:将客户所发送的信息由客户端由网络传到服务器端上,并且接受航服务器返回的接收方发送的信息,然后存储起来。

3用户客户端服务器端用户设置连接设置用户发送信息通信内容用户得到的信息处理用户退出服务器日志数据通信信息连接保存保存处理监控二.背景知识SOCKETSocket 可以看成在两个程序进行通讯连接中的一个端点,是连接应用程序和网络驱动程序的桥梁,Socket 在应用程序中创建,通过绑定与网络驱动建立关系。

此后,应用程序送给Socket 的数据,由Socket 交网络驱动程序向网络上发送出去。

计算机从网络上收到与该Socket 绑定IP 地址和端口号相关的数据后,由网络驱动程序交给Socket ,应用程序便可从该Socket 中提取接收到得数据,网络应用程序就是这样通过Socket 进行数据的发送与接收的(1) 创建Socket ;(2) 打开连接到Socket 的输入/出流;(3) 按照一定的协议对Socket 进行读/写操作;课程设计(4)关闭Socket.IO技术阻塞模式可能造成阻塞的函数有:connect()、accept()、读写函数C/S两端通过Socket机制进行连接(1) 客户端的编程流程:a创建Socket对象,向Server的监听端口请求;b通过向新Socket中读写数据与Server端通信;c关闭Socket,结束与Server端;(2)服务器端的编程流程:1打开Server Socket,创建一个服务器型套接字和一个普通套接字,服务器型套接字在指定端口为客户端请求的Socket 服务;2 等待来自客户端的Client端的请求;3接收Client端的请求,用返回的Socket建立连接;4通过向Socket中读写数据来与Client端通信;5关闭Socket,结束与当前Client端的通信;6关闭SerketSocket对象结束监听服务。

JAVA课程设计实验报告-“聊天室”报告

JAVA课程设计实验报告-“聊天室”报告
网上查阅资料
第二章 聊天室的设计
2.1聊天室的粗略设计分析
聊天系统平台应有两个部分组成:服务端和客户端。服务端主要完成用户信息的存储、客户端命令的接受与响应以及发送系统消息、信息转发、踢人等服务端应有的功能。客户端主要完成聊天信息的发送与接受、登录、注销等功能。
此c/s系统使用的是TCP/IP协议,应用了如下通讯模式:
如果用户名和密码正确的话,则登录聊天室主界面;如果已经在线,则输出已经在线;否则输出用户名和密码错误,需要重新登录或者注册。
在线用户列表
用户登录之后,需要知道系统中,有哪些用户在线,这样可以方便用户选择与个别用户私聊和传送文件,也可以进行公聊。
用户公聊
用户输入的用户名和密码都正确后,则进入聊天室。聊天主界面主要由四大版块组成:公聊的聊天信息、在线用户列表、好友列表,系统消息和聊天的一些操作。
1.2聊天室的基本功能-------------------------------------------------------------3
1.3设计所用参考资料-------------------------------------------------------------6
第二章 聊天室的设计-------------------------------------------6
由于Client使用了流套接字,所以服务程序也要使用流套接字。这就要创建一个ServerSocket对象,接下来服务程序进入无限循环之中,无限循环从调用ServerSocket的accept()方法开始,在调用开始后accept()方法将导致调用线程阻塞直到连接建立。在建立连接后accept()返回一个最近创建的Socket对象,该Socket对象绑定了客户程序的IP地址或端口号。由于存在单个服务程序与多个客户程序通讯的可能,服务程序循环检测是否有客户连接到服务器上,如果有,则创建一个线程来服务这个客户,以此完成对客户端的监听。

Java简易聊天工具课程设计报告及代码

Java简易聊天工具课程设计报告及代码

J a v a网络编程实践课程设计说明书课程名称:Java网络编程课程设计_题目:__基于C/S的班级聊天室(群聊)工具姓名:____HJC_____学号:201211012 201211006教学班号:软件工程1201班指导教师:xxx_______x x x x x x软件科学与工程系二○一三年十二月二十二日Java网络编程实践任务书目的:熟悉JA V A 语法,掌握图形化界面、多线程、网络、数据库等综合编程,掌握用编程语言开发由若干功能组成的小型项目的基本流程,增强动手实践能力,巩固和加强书本知识的学习,体会JA V A编程的特点。

题目1:基于C/S的班级即时通讯工具(2人)要求:1.C/S模式,基于Socket实现,服务器端用多线程来处理同时多个客户端连接。

2.数据存储:服务器端存储最少一个班级的信息;最好多个班级,主要存储班级若干学生的基本信息。

用数据库存储。

下面所有功能只考虑一个班是基本实现,考虑多个班是拓展实现。

3.界面:GUI界面,友好直观,布局合理,方便的功能入口。

4.功能:1)登陆输入用户名和密码;用户名是学号,有初始密码,例如111111;2)登陆验证根据服务器端存储的班级信息,对输入的用户进行验证,看是否存在于该班(只考虑一个班的情况)。

或是否是某个班的学生(多个班的情况)。

验证通过进入主界面,否则给出错误提示。

3)主界面列出该学生好友列表(同班级同学默认全是该生好友,如果是多个班则可以添加别班好友并经对方批准)。

4)即时聊天,选中某个好友,双击打开窗口聊天。

如果不在线则服务器等对方上线后转发(此功能属拓展实现)。

5)可以修改自己的登陆密码。

6)题目2:基于C/S的班级聊天室(群聊)工具(2人)要求:1.C/S模式,基于Socket实现,服务器端用多线程来处理同时多个客户端连接。

2.数据存储:服务器端存储一个班级的信息;主要存储班级若干学生的基本信息。

用数据库存储。

3.界面:GUI界面,友好直观,布局合理,方便的功能入口。

网络聊天室课程设计报告(内附java代码)

网络聊天室课程设计报告(内附java代码)

课程设计网络聊天室院 (系) 别信电学院班级计算102学号姓名指导教师时间2013-4-18—2013-5-10课程设计任务书题目网络聊天室课程设计系(部)信电学院专业计算机科学与技术班级计算 102学生姓名学号4月 18日至5月10日共 4 周指导教师 (签字 )系主任(签字)年月日一、设计内容及要求二、设计原始资料1)电子工业出版社《JSP实用教程》,郑阿奇编著2)电子工业出版社《JAVA程序设计实用教程》,叶核亚编著三、设计完成后提交的文件和图表1.计算说明书部分JSP界面设计2.图纸部分:程序流程图四、进程安排五、主要参考资料1)电子工业出版社《JSP实用教程》,郑阿奇编著2)电子工业出版社《JAVA程序设计实用教程》,叶核亚编著考资料成绩评定表作品成绩报告成绩口试(答辩)总评成绩成绩目录课程设计概述 (2)1.1 问题描述 (2)1.2 功能需求分析 (2)1.3 环境需求分析 (2)学生信息管理系统软件总体设计 (3)2.1 整体思路 (3)2.2 总体设计流程图 (4)学生信息管理软件详细设计 (5)3.1.界面设计 (5)3.2 通信功能实现方法 (7)参考文献 .....................................................................................................................................................................................错误!未定义书签。

课程设计概述1.1 问题描述`随着计算机网络日新月异的发展,人们的交流方式越来越多,传统的交流方式,如:信件、电报、电话等已经难以满足人们的交流要求,在互联网上即时的和好友取得联系,已经成为当今社会人们主流的联系方式。

因此,两台计算机之间进行即时通讯、发送文件等交流方式已经成为必然潮流。

JAVA聊天室课程设计报告含源代码压缩文件

JAVA聊天室课程设计报告含源代码压缩文件

京晓庄学《JAVA 程序设计》课程设计报告题目: Java 聊天室的设计与实现姓名: 戴佳伟学号: 班级: 14 软件工程3班指导教师: 王峥完成时间成绩:信息工程学院2016 年6 月目录Java 聊天室的设计与实现引言Java 聊天室开发背景在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,类似QQ、MSN ,网络聊天时一类的聊天系统的发展日新月异,因此产生了制作一个有简单聊天功能的网络聊天程序;而且通过制作该程序还能更好的学习网络软件编程知识。

本程序设计简单可以实现在同一局域网的聊天,程序可以自动扫描已经上线的用户,上线用户可在同一聊天界面中实现群聊。

如果需要与其中的用户进行交谈,则只需双击右侧用户列表,读取对方IP 地址,便可在下面的输入框内输入信息进行发送,实现一对一私聊功能。

1.1 Java聊天室开发的目的和意义目的:(1)理解进程消息通信的概念,如何实现两个创建进程之间的数据传递。

(2)理解进程共享变量的进程通信。

(3)熟悉并掌握java 语言的代码编写(4)熟练使用开发工具Eclipse(5)实现聊天室的一些基本功能意义:(1)实现局域网中的信息交互,界面尽量人性化且美观,让用户便于接受(2)用户及时获取自己想要的信息、促进交谈(3)异常处理,对于用户错误的操作使用程序会有提示消息(4)前期仅实现其基本雏形,后期可扩性很高,可实现统计在线人数,发送图片,界面美化,用户登陆注册信息的采集,连接到数据库etc.(5)后期可便于网站自身的广告宣传与商品推广因所学知识和能力的局限性,仅能完成有限范围内的雏形生成与功能实现,后期的功能实现需要进一步的深入学习才能使本课程设计日益完善。

1.2 完成的主要工作(1)需求分析与总体设计、详细设计、代码分析(2)实现程序所能运行的功能(3)选择Window 系统,并选择该操作系统中一种进程通信的方式。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

J A V A聊天室课程设计报告含源代码压缩文件 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】南京晓庄学院《JAVA程序设计》课程设计报告题目:姓名:学号:班级: 14软件工程3班指导教师: 王峥完成时间成绩:信息工程学院2016年6月目录Java聊天室的设计与实现引言Java聊天室开发背景在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,类似QQ、MSN,网络聊天时一类的聊天系统的发展日新月异,因此产生了制作一个有简单聊天功能的网络聊天程序;而且通过制作该程序还能更好的学习网络软件编程知识。

本程序设计简单可以实现在同一局域网的聊天,程序可以自动扫描已经上线的用户,上线用户可在同一聊天界面中实现群聊。

如果需要与其中的用户进行交谈,则只需双击右侧用户列表,读取对方IP地址,便可在下面的输入框内输入信息进行发送,实现一对一私聊功能。

1.1Java聊天室开发的目的和意义目的:(1)理解进程消息通信的概念,如何实现两个创建进程之间的数据传递。

(2)理解进程共享变量的进程通信。

(3)熟悉并掌握java语言的代码编写(4)熟练使用开发工具Eclipse(5)实现聊天室的一些基本功能意义:(1)实现局域网中的信息交互,界面尽量人性化且美观,让用户便于接受(2)用户及时获取自己想要的信息、促进交谈(3)异常处理,对于用户错误的操作使用程序会有提示消息(4)前期仅实现其基本雏形,后期可扩性很高,可实现统计在线人数,发送图片,界面美化,用户登陆注册信息的采集,连接到数据库etc.(5)后期可便于网站自身的广告宣传与商品推广因所学知识和能力的局限性,仅能完成有限范围内的雏形生成与功能实现,后期的功能实现需要进一步的深入学习才能使本课程设计日益完善。

1.2完成的主要工作(1)需求分析与总体设计、详细设计、代码分析(2)实现程序所能运行的功能(3)选择Window系统,并选择该操作系统中一种进程通信的方式。

(4)运用Eclipse开发工具和java语言实现该应用程序。

2需求分析和总体设计需求分析与设计思路关键技术说明程序开发环境与运行环境介绍:JDK(JavaDevelopmentkit)是SUN公司提供的一套Java开发环境,通常称之为它主要包括了一些常用的JDK工具、执行时需要的函数库、与C连接时所需的文件及一些Java应用程序范例等。

是一个编写Java的Applet小程序和应用程序的程序开发环境。

JDK是整个Java的核心,包括了Java运行环境(JavaRuntimeEnvirnment),一些Java 工具和Java的核心类库(JavaAPI)。

不论什么Java应用服务器实质都是内置了某个版本的JDK。

Java语言介绍:是一门编程语言,不仅吸收了语言的各种优点,还摒弃了C++里难以理解的、等概念,因此Java语言具有功能强大和简单易用两个特征。

Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

Java具有简单性、面向对象、、、、平台独立与可移植性、、动态性等特点。

Java可以编写、、和应用程序等。

Java提供了简单的类机制和动态的构架模型。

对象中封装了它的状态变量和方法很好地实现了模块化和信息隐藏;而类则提供了一类对象的原型通过继承和重载机制子类可以使用或重新定义父类或超类所提供的一方法从而既实现了代码的复用又提供了一种动态的解决方案。

Java是一种完全面向对象的程序设计语一言它除了数组、布尔和字符二个基本数据类型外的其它类都是对象它不再支持全局变量。

在Java中如果不创建新类就无法创建程序Java程序在运行时必须先创建一个类的实例然后才能提交运行。

Java同样支持继承特性Java的类可以从其它类中继承行为但Java只支持类的单重继承即每个类只能从一个类中继承。

Java支持界面界面允许程序员定义方法但又不立即实现一个类可以实现多个界面利用界面可以得到多重继承的许多优点而又没有多重继承的问题。

编程工具介绍::一个开放源代码的、基于Java的可扩展开发平台Eclipse语言发展:Eclipse是着名的跨平台的自由(IDE)。

最初主要用来开发,通过安装不同的插件Eclipse可以支持不同的计算机语言,比如C++和Python等开发工具。

Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。

许多软件开发商以Eclipse为框架开发自己的IDE。

Eclipse最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。

IBM提供了最初的Eclipse代码基础,包括Platform、JDT和PDE。

Eclipse项目IBM发起,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括、RationalSoftware、及等。

Eclipse是一个开放源码项目,它其实是VisualAgeforJava的替代品,其界面跟先前的VisualAgeforJava差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。

随后还有包括Oracle在内的许多大公司也纷纷加入了该项目,Eclips e的目标是成为可进行任何语言开发的IDE集成者,使用者只需下载各种语言的插件即可。

需求分析随着网络和IT技术的快速发展以及日新月异的更新换代,不断渗透到人们的日常生活。

如今Internet已经成为于人们生活息息相关的一部分,也是人们获取有用信息和促进彼此之间相互交流的便捷重要的途径之一。

同时,日益增多的机构和企业组织开始利用网络资源传递、发布、收集和管理信息,这对网络进行信息交互这种活动是一次很大的机遇与挑战,从而使网络的经营方式充满了活力。

用户需求主要功能分析:(1)聊天交谈功能:用户获取信息的有效途径(2)当前用户显示功能:用户明确自身的登陆状态(3)文本框显示聊天功能:便于用户浏览信息(4)发送消息框显示功能:存放用户输入想要发送的信息(5)发送按钮功能:鼠标点击——发送用户输入消息框的信息(6)用户头像显示功能:个性化用户使用Java聊天室设计方案与思路1.设计方案:(1)把自身本机的IP地址发送给所有正在打开这个聊天室程序的人(2)其他人获取了这个IP地址后,会监听这个地址(3)如果有人发送了消息,所有的人都会接收并查看到(4)设计登录程序,使其显示登录的ip地址端口号,以及用户昵称,通过登录按钮可以调用客户端程序,实现聊天功能2..设计思路聊天系统的设计跟普通网站设计有着许多不同的地方,普通网站设计所考虑的因素,例如,普通网站需要对布局进入大量美化以及动画设计等等,而聊天室只要提供满足访客双方直接实时聊天即可。

因此,在设计聊天系统的过程中,必须要考虑好以下几个设计要点:在Internet上的聊天程序一般都是以服务器提供服务端连接响应,使用者通过客户端程序登录到服务器,就可以与登录在同一服务器上的用户交谈,这是一个面向连接的通信过程。

因此,程序要在TCP/IP环境下,实现服务器端和客户端两部分程序。

1.首先通过继承JFrame类构造服务器界面。

2.设计客户端程序使其能够完成正常的通信功能,并且可以更改背景颜色,设置字体颜色。

3.设计侦听程序,使其显示登录的ip地址端口号,以及用户昵称,通过侦听按钮可以调用客户端程序,实现聊天功能。

Java聊天室目录结构说明Java聊天室功能结构对系统实现功能进行说明,分析系统功能结构,画出系统功能结构图,如图2-1所示。

总体功能:(1)实现在同一局域网的聊天(2)程序可以自动扫描已经上线的用户(3)需要与其中的用户进行交谈,则只需双击右侧用户列表,输入对方IP地址,便可在下面的输入框内输入信息进行发送。

(4)添加了用户头像(5)调整了界面窗口(6)Enter键实现发送消息功能分段功能:1、服务器端功能描述:启动服务器端。

2、客户端功能描述:启动客户端;显示登录昵称:显示系统时间:显示聊天记录:发送信息(实现按回车键发送消息);退出聊天室。

功能实现:1、采用套接字实现网络中的数据传输2、尽量使用某个或某些应用层的协议实现系统的部分功能3、系统设计规范合理,操作流程方便简单详细设计3.1Java聊天室模块实现3.1.1聊天功能模块实现一、实现原理启动该程序时运行如下过程:(1)把自身本机的IP地址发送给所有正在打开这个聊天室程序的人(2)其他人获取了这个IP地址后,会监听这个地址(3)如果有人发送了消息,所有的人都会接收并查看到二、分层结构及调用关系说明(1)从main()函数入口开始分析,实例化ChatLineFrame这个类并执行类repaint 方法,重绘事件,刷新弹出的窗口的内容(2)在实例化ChatLineFrame这个类过程中,首先定义ChatLineFrame类继承JFrame,声明成员变量和框架布局内容,然后构造方法,实例化该类的时候,会自动执行函数内的内容。

(3)初始化窗口和其他部分(4)实例化chatJFrame(5)实例化ChatJFrame类,该类实现向外广播消息(6)实例化ReceiveMessage类,该类实现监听并接受消息(7)启动UDPReceive类、UserBroadcast的线程。

(8)在定义初始化方法中,为按钮增加监听行为,实例化IPListListener类与SendButtonListener类。

三、关键代码分析class ChatJFrame extends JFrame;IP区分割开String str2=(0)++获取目的IP地址+1)+(255);String str3=(0,i着、论文集、毕业论文、报告等[序号]作者.书名[文献类型标志].出版地:出版者,出版年.起止页码(任选).(文献类型标志:专着M;论文集C;报告R;其它文献Z)2.期刊[序号]作者.篇名[J].刊名,年,卷(期刊).3.电子文献[序号]主要责任者.电子文献题名[文献类型/载体类型].电子文献的出版或可获得地址,发表或更新的期/引用日期(任选).例如:[1]孟彩霞.计算机软件基础[M].西安:西安电子科技大学出版社,2003.[1]核心技术卷I基础知识[M].北京:机械工业出版社,[2]张光彬孟红蕊张永宝..Java课程设计(案例精编)[M].北京:清华大学出版社.2007。

相关文档
最新文档