java大作业设计报告JAVA聊天室
Java聊天室程序设计报告
《Java之聊天室制作》总结报告姓名 __赵其国___________________学号 __2_____________班级 __嵌入式一班__ _____________二〇一二年十二月二十日一,设计目的为了更好的巩固输入输出流,窗体设计,多线程运用,网络通信设计方面的知识。
把所学的课程及相关知识加以融会贯通。
二,设计内容设计的聊天室能实现用户登录,显示登录用户列表,以及发送聊天信息和显示聊天信息的功能。
并可以选择接收信息的用户进行单发或群发的功能,运行程序,登录服务器后,可以从列表中选择单个或多个用户进行聊天,它是图形界面,线程,流和文件系统等技术的综合使用。
三,概要设计实现的功能:1,启动服务器端,接收客户端发来的信息,并在服务器端窗体显示客户端聊天信息,再吧信息返给在线用户,窗体背景色为粉色2,启动客户端窗体,窗体背景色为粉色3,用户名编辑框输入用户名,设置字体显红色,单击登录按钮,在显示在线用户列表内显示用户名,同时用户名编辑框不能编辑4,发送编辑框输入发送内容,单击发送按钮,启动输出流,把信息发送出去,同时把发出的信息追加到聊天内容文本域内,显示用户名,时间和发送内容。
5,单击退出按钮,运用File类和JfileChooser类实现聊天信息的保存6,聊天信息文本域,在线用户显示域和发送信息的文本域加了滚动条,其中聊天信息文本域,发送信息的文本域的文字能自动换行。
7,别的客户端发来信息是通过输入流读取信息,并截取发来信息的用户名及信息,用户名加到在线用户列表上显示在线,信息追加到聊天内容文本域内,显示用户名,时间和发送内容。
功能不足之处:1,保存聊天信息保存为text格式的有黑块。
保存为Doc格式的要转码不能直接打开2,用户在线显示,只能在用户发送信息时别的用户才能得到在线的用户名,然后再加到在线用户列表中,显示用户在线。
3,聊天室只适合群聊,没有实现技能群聊又能和单个人聊天的功能4,用户输出“退出”后在线用户列表中就会把用户删除,不过没有实现没找到错误出在哪里。
Java实验报告:聊天室的设计
综合实验聊天室的设计一、实验目的理解和掌握URL 通信的基本概念和组成,掌握URL 类的构造方法和成员方法,理解和掌握Socket 及UDP 编程。
二、实验原理利用网络通信的原理和Java中URL类进行编程。
三、主要仪器及耗材计算机与Windows 2000/XP系统;J2SDK、UltraEdit等软件。
四、实验内容与步骤内容:编写一个网上多用户聊天室程序。
要求:(1)服务器程序响应客户端程序不应该用很多时间。
(2)允许对与服务器连接的客户数有一定的限制。
(3)客户端程序提供客户聊天界面,用于输入信息和显示信息;接收通过服务器转发的其他客户聊天信息并显示。
步骤:1.在UltraEdit编辑环境下(推荐使用)或其它开发环境下开发Application和Applet程序;Applet程序:// ChatClient.javaimport java.awt.*;import java.awt.event.*;import .*;import java.io.*;import javax.swing.*;public class ChatClient extends JApplet implements Runnable {private JLabel clientLabel;private int clientID;private JTextField inputField;private JTextArea displayArea;private Socket connection;private DataInputStream input;private DataOutputStream output;// Set up user-interfacepublic void init(){Container container = getContentPane();JPanel panel1,panel2;panel1 = new JPanel();clientLabel=new JLabel("Client ");inputField =new JTextField(20); //inputField用于输入用户聊天信息inputField.addActionListener( new ActionListener() {public void actionPerformed(ActionEvent e) {try {output.writeUTF(inputField.getText()); //发送用户输入的聊天信息到server}catch ( IOException ioException ) {ioException.printStackTrace();}}});panel1.setLayout(new FlowLayout());panel1.add(clientLabel );panel1.add( inputField );container.add(panel1,BorderLayout.NORTH);panel2 = new JPanel();displayArea = new JTextArea( 10, 30 );displayArea.setEditable( false );panel2.add( new JScrollPane( displayArea ), BorderLayout.CENTER );container.add(panel2,BorderLayout.CENTER );} // end method init// Make connection to server and get associated streams.// Start separate thread to allow this applet to// continually update its output in textarea display.public void start(){// connect to server, get streams and start commThreadtry {// make connectionconnection = new Socket( getCodeBase().getHost(), 50000 );// get streamsinput = new DataInputStream( connection.getInputStream() );output = new DataOutputStream( connection.getOutputStream() );}// catch problems setting up connection and streamscatch ( IOException ioException ) {ioException.printStackTrace();}// create and start output threadThread commThread = new Thread( this );commThread.start();} // end method start// control thread that allows continuous update of displayAreapublic void run(){// get client identifiertry {clientID = input.readInt(); // 读server发送来的用户clientID// display clientID in event-dispatch threadSwingUtilities.invokeLater(new Runnable() {public void run(){clientLabel.setText( "客户" + clientID );}});while ( true ) { //循环聊天的各个用户发送来的信息,并显示String message=input.readUTF();displayMessage( message );}} // end trycatch( EOFException ioException ) {displayMessage( "Server terminated connection" );}// process problems communicating with servercatch ( IOException ioException ) {ioException.printStackTrace();}} // end method runprivate void displayMessage( final String messageToDisplay ){// display message from event-dispatch thread of executionSwingUtilities.invokeLater(new Runnable() { // inner class to ensure GUI updates properlypublic void run() // updates displayArea{displayArea.append( messageToDisplay +"\n");displayArea.setCaretPosition(displayArea.getText().length() );}} // end inner class); // end call to SwingUtilities.invokeLater}} // end classApplication程序import .*;import java.io.*;public class ChatServer{ private int clientNum=0; //当前连接的用户数private int maxClients=10;//允许连接的用户最大数private ServerSocket ss;private CommunicationThread communications[];public ChatServer(){try {ss = new ServerSocket( 50000, maxClients );}// process problems creating ServerSocketcatch( IOException ioException ) {ioException.printStackTrace();System.exit( 1 );}communications=new CommunicationThread [maxClients];for (int i=0;i<maxClients;i++) //循环等待用户连接{ try {//等待用户连接,连接成功时创建server端通信线程并启动它communications[i]=new CommunicationThread(ss.accept(),i);communications[i].start();clientNum++;}catch( IOException ioException ) {ioException.printStackTrace();System.exit( 1 );}}}private class CommunicationThread extends Thread {private Socket socket;private int clientID;private DataInputStream input;private DataOutputStream output;public CommunicationThread(Socket ss,int number) {socket=ss; //取连接SocketclientID=number; //取分配给用户的IDtry {//从Socket得到输入/输出流input = new DataInputStream( socket.getInputStream() );output = new DataOutputStream( socket.getOutputStream() );}catch( IOException ioException ) {ioException.printStackTrace();System.exit( 1 );}}public void run() {try {//String s=null;//s=s+clientId;output.writeInt(clientID); //给用户发送clientID }catch( IOException ioException ) {ioException.printStackTrace();System.exit( 1 );}while (true) { //循环读一用户clientID发送来的信息,发送给聊天的各个用户try {String message=input.readUTF(); //读用户clientID发送来的信息for (int i=0;i<clientNum;i++) { //发送给聊天的各个用户communications[i].output.writeUTF(" 客户"+clientID+":"+message);}//用户clientIDID发送的信息是"Bye",则用户ID结束聊天if (message.equals("Bye")) break;}catch( IOException ioException ) {ioException.printStackTrace();System.exit( 1 );}}try {output.close();input.close();socket.close();}catch( EOFException ioException ) {System.err.println( "Client terminated connection" );}catch( IOException ioException ) {ioException.printStackTrace();System.exit( 1 );}}}public static void main(String[] args){new ChatServer();}}2.在DOS环境下编译和运行Application和Applet程序;3.依据所做实验写实验报告。
Java大作业设计报告
《Java程序设计》大作业设计报告设计名称多人聊天室组员姓名学生班级设计时间 2013.12.15设计成绩一、问题描述及设计思路设计多人聊天程序,能进行多人实时聊天,其中服务器为PC端,客户端为安卓端。
在服务器上,不断监听来自客户端的接入请求,对于接入的客户端加入线程池,同时为之开启独立线程,等待从该客户端发来的信息,再转发给其他客户端。
在客户端上,首先布局简单的安卓界面,开启客户端并且登录后,设置button 按钮监听想服务器发送信息请求,同时开启独立线程接收来自服务器的信息(即来自其他客户端的信息)。
二、详细设计过程服务器开发1.首先,导入了我们完成服务器端所要完成的各种类:能,辅助以GUI界面进行美化。
2.在Server类里面的私有成员函数里,有以下定义:程运行做准备,同时创建了一个广义的ArrayList<Socket>vector,用来存放客户端的套接字。
创建了两个file类的文件,分别用于记录客户端的链接信息和保存客户端的聊天记录。
一个独立的线程,互不干扰。
接下来则是采用GUI组件进行简单的界面设计,在try-catch块里完成主要功能。
首先,采用ServerSocket serverSocket = new ServerSocket(port);建立套接字,一旦建立成功,则在服务器端的界面上会出现创建的日期信息。
又使用Socket socket = serverSocket.accept();连接客户端,采用while语句不断监听客户端连接,收到请求后,则在服务器端显示客户端的信息,如连接到服务器的时间,客户端的主机名称和IP地址,这些信息会被写进txt文本进行保存。
mExecutorService.execute(new Thread(newHandleAClient(socket)));则是向线程池中添加线程,这里使用了一个内部类HandleAClient用于处理服务器和单独一个客户端之间的问题。
java 聊天室 实验报告
java 聊天室实验报告Java 聊天室实验报告摘要:本实验旨在利用Java编程语言创建一个简单的聊天室应用程序。
通过使用Socket和ServerSocket类,实现了客户端和服务器之间的实时通讯。
在实验过程中,我们学习了如何建立连接、发送和接收消息,并处理异常情况。
最终,我们成功地实现了一个基本的聊天室应用程序,并对其进行了测试和验证。
介绍:聊天室应用程序是一种常见的网络应用,它允许用户在网络上实时交流。
在本实验中,我们使用Java编程语言创建了一个简单的聊天室应用程序。
该程序包括一个服务器端和多个客户端,它们之间通过网络进行通讯。
实验步骤:1. 创建服务器端首先,我们创建了一个Server类作为服务器端。
在Server类中,我们使用ServerSocket类来监听指定端口,并在有新的客户端连接时创建一个新的线程来处理通讯。
在服务器端,我们实现了一个简单的消息广播功能,即当一个客户端发送消息时,服务器将该消息发送给所有连接的客户端。
2. 创建客户端接下来,我们创建了一个Client类作为客户端。
在Client类中,我们使用Socket类来连接服务器,并通过输入输出流来发送和接收消息。
客户端可以通过输入框输入消息,并在发送后将其显示在聊天窗口中。
同时,客户端也能够接收其他客户端发送的消息,并将其显示在聊天窗口中。
3. 测试和验证最后,我们对创建的聊天室应用程序进行了测试和验证。
我们启动了一个服务器端和多个客户端,并进行了实时通讯。
我们测试了消息的发送和接收功能,以及异常情况的处理。
通过测试,我们验证了聊天室应用程序的正常运行和稳定性。
结论:通过本实验,我们成功地使用Java编程语言创建了一个简单的聊天室应用程序。
通过Socket和ServerSocket类,我们实现了客户端和服务器之间的实时通讯,并测试和验证了其功能和稳定性。
在今后的学习和实践中,我们将进一步完善和扩展这个应用程序,以满足更多的需求和场景。
JAVA聊天室实验报告 网络编程技术实验报告
网络编程技术大作业
1.3 参考文档
版本:0.1.0 第 5页
序号 1 2 3
文档名 《Java 大学实用教程》 《TCP/IP 网络编程技术基础》 《Java 一对一网络编程》
012.6.14 2012.6.14
版本 第二版 第一版
4 系统设计说明...................................................................................................................................................... 8 4.1 模块整体结构图...................................................................................................................................... 8 4.2 使用说明书.............................................................................................................................................. 8
适用范围:聊天程序使用者,功能相似的程序开发人员,以及其他需要了解本系统工作 原理的人员。
1.2 术语/缩略语
序号 1 2 3
4
5 6 7 8 9 10 11 12 13
术语/缩略语 API Socket Frame Java Application 目标 IP 端口
Listener Client Sever Flag InputStream OutputStream Awt.event
JAVA课程设计报告聊天室
JAVA课程设计报告聊天室一、课程目标知识目标:1. 学生能理解网络编程的基本概念,掌握JAVA Socket编程的基础知识。
2. 学生能运用面向对象编程思想,设计并实现聊天室客户端与服务器的数据传输功能。
3. 学生了解并掌握多线程技术在网络编程中的应用。
技能目标:1. 学生能运用所学知识,独立编写并调试简单的聊天室程序。
2. 学生具备分析问题、解决问题的能力,能针对聊天室程序进行优化和改进。
3. 学生能在团队协作中发挥自己的作用,与他人共同完成一个完整的网络编程项目。
情感态度价值观目标:1. 学生培养对计算机编程的兴趣,增强学习JAVA的自信心。
2. 学生认识到团队合作的重要性,培养良好的团队协作精神。
3. 学生通过编程实践,体验创新与创造的乐趣,培养积极向上的学习态度。
本课程针对高年级学生,结合课本内容,注重理论与实践相结合,以提高学生的实际编程能力为主要目标。
课程要求学生在掌握基本知识的基础上,能够独立完成实际项目,培养其分析问题、解决问题的能力。
同时,课程强调团队协作,使学生学会与他人共同进步,共同成长。
通过本课程的学习,使学生达到知识、技能和情感态度价值观的全面提升。
二、教学内容1. 网络编程基础理论:介绍网络编程的基本概念,包括IP地址、端口号、协议等,使学生理解网络通信的基本原理。
- 教材章节:第三章 网络编程基础2. JAVA Socket编程:讲解Socket编程的原理,指导学生掌握客户端与服务器之间的数据传输方法。
- 教材章节:第四章 Socket编程3. 面向对象编程:运用面向对象编程思想,设计聊天室程序,包括类的定义、封装、继承与多态。
- 教材章节:第二章 面向对象编程基础4. 多线程技术:介绍多线程编程的概念,分析在聊天室程序中如何实现多用户并发通信。
- 教材章节:第五章 多线程编程5. 聊天室程序设计与实现:指导学生完成聊天室客户端与服务器的编写,实现基本的功能需求。
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聊天室
JAVA程序设计多人聊天室:?#1设计目的Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和静态的语言。
本次课程设计旨在应用JAVA编程语言中的网络通信,多线程,数据库编程,图形界面编程等技术实现一个基本的多人在线网络聊天室。
并以此巩固JAVA基础知识,体会面向对象的设计方法。
2》3平台要求3.1使用:搭载JAVA运行环境的平台即可。
3.2开发环境:Windows10 64bitJDKEclipse¥Window Builder4需求分析管理员:启动服务器,关闭服务器,强制用户退出,聊天房间增添改查。
用户:GUI,注册,登陆,聊天等。
用例图:SystemUserAdministratorServerClientDatabaseHouse delete or addUser logoutLogin and logoutChatEnter and leaveHouseUser Info get and setSign UpStart up server5 概要设计5.1 服务器设计?将客户端的请求抽象化,每种请求服务器都会产生一个特定的类的对象去处理它。
服务器负责接受客户端请求,根据请求内容完成指定工作。
为提高效率,采用多线程结合线程池设计技术,对于每个请求在线程池内得到一个线程去处理请求。
如图3-1所示。
5.2 客户端设计聊天室中一个事物的过程基本流程是:用户产生动作,客户端发送消息,服务器接收并处理,服务器返回处理结果,GUI 根据结果进行显示的更新。
客户端只在GUI 中采用多线程设计。
而对服务器回应的接受都是单线程的因为只有一个服务器为自己服务,且在接收数据过程中连接是不可断开的。
客户端的设计如图3-2所示。
一次事物流程中的步骤编号在图中给出。
&图 5-2客户端概要图6 详细设计6.1 服务器详细设计服务器要完成的任务是接受客户请求并在自己维护的数据结构上进行相应处理最终将处理结果返回给客户端。
JAVA聊天室实训报告
服务器端开放端口, 等待客户端连接
接收客户端请求。
监听客户端的通信
互相通信 客户端 A 发送信息 客户端 B 发送信息
客户下线
结束
3.重点设计及编码
//聊天室服务器 import .*; import java.io.*;
import java.util.*; import java.awt.event.*; import java.awt.*; import javax.swing.*; class Server extends JFrame { private TextArea msgA = new TextArea();//服务器用来输入的文本域 private TextArea area = new TextArea();//服务器显示消息的文本域 private TextField portT = new TextField("8888"); private java.awt.List list = new java.awt.List();//在线客户列表 private ServerSocket server;//服务器 private Socket client;//客户端 private Map<String, Socket> container = new HashMap<String, Socket>();//HashMap void init() { //设置几个面板// Panel p1 = new Panel(); Panel p2 = new Panel(); Panel p3 = new Panel(); Panel p4 = new Panel(); Panel p5 = new Panel(); Panel p6 = new Panel(); Panel p7 = new Panel(); Panel p8 = new Panel(); Panel p9 = new Panel(); Panel p10 = new Panel(); //设置两个主要的文本框 Label lb1 = new Label("服务器界面"); lb1.setBackground(new Color(250,120,150)); Label lb2 = new Label("port"); BorderLayout border1 = new BorderLayout(); p1.setLayout(border1); p1.add(BorderLayout.CENTER, area); BorderLayout border2 = new BorderLayout(); p5.setLayout(border2); p5.add(BorderLayout.NORTH, p3); p5.add(BorderLayout.CENTER, msgA); BorderLayout border3 = new BorderLayout(); p7.setLayout(border3); p7.add(BorderLayout.CENTER, p1); p7.add(BorderLayout.SOUTH, p5); p7.setBackground(new Color(250,150,200)); JButton startButton = new JButton("启动服务"); JButton sendButton = new JButton("发送"); JButton flushButton = new JButton("刷新列表"); FlowLayout fl = new FlowLayout(FlowLayout.LEFT);
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聊天室实验报告Java聊天室实验报告一、引言近年来,随着互联网的快速发展,聊天室作为一种实时交流工具,受到越来越多人的关注和使用。
为了深入了解聊天室的原理和实现方式,本次实验选择了Java作为开发语言,设计了一个基于Java的聊天室应用程序。
二、实验目的1. 学习Java Socket编程的基本原理和技术;2. 理解聊天室的基本功能和实现方式;3. 掌握多线程编程的相关知识;4. 实践团队协作和项目管理的能力。
三、实验环境1. 操作系统:Windows 10;2. 开发工具:Eclipse IDE;3. 编程语言:Java;4. 版本控制工具:Git。
四、实验过程1. 项目规划与设计在开始编写代码之前,我们首先进行了项目规划和设计。
根据聊天室的功能需求,我们确定了客户端和服务器端的基本架构,并绘制了类图和时序图,明确了各个类之间的关系和通信方式。
2. 客户端实现客户端是用户与聊天室进行交互的界面,我们使用Java Swing库进行界面设计。
通过Socket连接服务器,客户端可以发送消息给服务器,并接收服务器转发的其他客户端的消息。
为了实现实时聊天,我们使用了多线程技术,一个线程负责接收消息,另一个线程负责发送消息。
3. 服务器端实现服务器端是聊天室的核心,负责接收客户端的连接请求,并转发消息给其他客户端。
我们使用Java Socket编程实现了服务器端的逻辑。
服务器端通过监听特定的端口,接收客户端的连接请求,并为每个客户端创建一个独立的线程处理其消息。
同时,服务器端维护了一个客户端列表,用于管理和转发消息。
4. 功能完善与测试在完成客户端和服务器端的基本功能后,我们进行了功能完善和测试。
我们增加了一些附加功能,如用户登录、用户列表显示等。
同时,我们进行了多线程并发测试、异常处理测试和界面兼容性测试,保证了程序的稳定性和可靠性。
五、实验结果与分析经过一段时间的努力,我们成功地实现了一个基于Java的聊天室应用程序。
java课程设计报告利用java实现简单聊天室
创建一个socket对象,用于连接服务器。
用socket创建流。
通过流和服务器进行交互。
交互完毕,将流和socket关闭。
(4)聊天室:
类名:Client
作用:实现发送即时信息。
继承的接口名:ActionListener
public class Server implements ActionListener{
定义的对象:
count//记录点机关闭按钮次数2次关闭
soconly//只有SOCKET,用于群发
sockets//所有客户的SOCKET
socket_thread//Socket所在的线乘,用于退出;
程序中引入的包:
package Chat;
import .*;
import java.awt.*;
import ;
import javax.swing.*;
import java.util.*;
import java.io.*;
(1)服务器端代码中用户自定义类:
类名:Server
作用:服务器启动
接受请求时候,通过accept()方法,得到一个socket对象。
Socket socket = server.accept();
通过socket创建流(输入,输出)。
BufferedReaderbr=newBufferedReader(newInputStreamReader
(socket.getInputStream()))
类名:LogIn
作用:用户注册登录
继承的接口名:ActionListener
public class LogIn implements ActionListener
java聊天室 实验报告
java聊天室实验报告Java聊天室实验报告引言:聊天室是一种通过网络连接,允许用户在同一平台上进行实时交流的应用程序。
随着互联网的普及,聊天室成为人们日常生活中不可或缺的一部分。
本实验旨在通过使用Java编程语言,设计和实现一个简单的聊天室应用程序,并探讨其实现过程中所涉及的关键技术和挑战。
一、项目背景随着网络技术的飞速发展,人们对于实时交流的需求不断增加。
聊天室作为一种方便快捷的交流工具,受到了广大用户的欢迎。
本项目旨在利用Java编程语言,实现一个基于网络的聊天室应用程序,以满足用户的实时交流需求。
二、项目目标1. 设计和实现一个基于Java的聊天室应用程序。
2. 实现用户之间的实时消息传递功能。
3. 提供可靠的用户身份验证机制,确保聊天室的安全性。
4. 实现聊天记录的存储和查看功能,方便用户回顾历史消息。
三、技术实现1. 服务器端在服务器端,我们使用Java的Socket编程实现了与客户端的连接和通信。
通过建立一个服务器Socket,监听指定端口,可以接受来自客户端的连接请求。
一旦连接建立,服务器端就会创建一个新的线程来处理该客户端的请求,并实现实时消息的传递和处理。
2. 客户端在客户端,我们同样使用Java的Socket编程实现了与服务器端的连接和通信。
客户端通过建立一个Socket,指定服务器的IP地址和端口号,即可与服务器建立连接。
客户端通过输入消息并发送给服务器,同时接收来自服务器的消息并显示在界面上。
3. 用户身份验证为了确保聊天室的安全性,我们使用了用户身份验证机制。
在用户登录时,客户端将用户名和密码发送给服务器端。
服务器端通过验证用户信息的正确性,返回登录结果给客户端。
只有通过身份验证的用户才能进入聊天室并参与实时交流。
4. 聊天记录存储为了方便用户回顾历史消息,我们实现了聊天记录的存储和查看功能。
服务器端将接收到的消息保存在数据库中,并提供查看聊天记录的接口。
用户可以通过指定时间范围或关键词来查询历史消息,以便回顾和查找需要的信息。
《Java程序设计》课程设计报告-简易聊天室系统
华北科技学院课程设计说明书班级: 信息与计算科学B091学号:姓名:设计题目: 简易聊天室系统设计时间: 2011.12.26 至2011.12.30 指导教师:评语:________________________________ ________________________________________ _________________________________________ _________________________________________ _________________________________________ 评阅成绩:____评阅教师:_____目录1 引言 (1)1.1课程设计选题 (1)1.2课程设计的目的 (1)1.3本选题的设计背景 (1)2.1 功能需求 (1)2.2 系统的开发运行环境 (2)2 总体设计 (2)3.1 系统体系结构设计 (2)3 详细设计与实现 (3)4.1 登录模块 (3)4.2 客户端注册界面模块 (5)4.3 客户端聊天模块 (8)4.4 服务器端模块 (10)4 小结和展望 (13)参考文献 (14)附录 (15)使用说明书 (15)源程序清单 (18)1引言1.1课程设计选题《简易聊天室系统》1.2课程设计的目的使学生巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平。
1.3本选题的设计背景聊天是是网络中广泛应用的服务之一,特别是现在信息社会对聊天的依赖也越累越大,我们品是在生活中很多人都在用的QQ就是一种很好的聊天工具,它不仅只是聊天那么简单,其它的功能也非常强大。
基于Java语言在网络编程中的广泛应用与我们基本每时每刻都在接触的聊天系统。
我选择尝试对一简单的聊天系统进行开发。
Java聊天室课程设计报告
UML课程设计题目网络聊天程序开发设计与实现学号:*************名:***指导教师:完成时间:2017年 12月目录1.摘要 (2)2.绪论 02.开发环境 03.需求分析 (1)3.1程序简介 (1)3.2程序功能 (1)4.系统设计 (2)4.1概要设计 (2)4.2详细设计 (2)5.测试 (7)6.结论 (9)参考文献 (10)摘要本次训练主要是考查了对JA V A程序设计的综合运用,设计一个Socket 通信的聊天程序,用户可以通过程序进行聊天通信,但不支持用户自定义表情及图片的发送。
本程序设计也用到了一些相关的标准Java的类,给程序设计带来了许多的方便,但用那些要切记加相应的类的包,还有一些构造方法和个别接口方法。
本程序可以实现用户之间的一些简单的交互,虽然功能较少,但是我想通过这次程序设计来熟悉并且学习更多关于JA V A编程的东西,来便于以后可以使用。
关键词:java聊天1.绪论对于一个选择网络编程的人来说,必须要有足够的细心和耐心,因为编程一般来说是很枯燥的乏味的,而且程序会越来越复杂,它所用到的符号、标记很多,所以不能出点小错误的。
还有,我们不能只是看程序,要学会把自己学的自己拿去实践,自己去编一些程序,培养自己的动手能力,掌握一些编程技巧,熟练运用自己学到的理论知识,这样在以后才能开发出属于自己的东西。
如今,随着科学技术的发展,计算机已成为了我们生活中必不可少的设备了,而掌握计算机知识和运用,又成了我们每一个人的目标了。
现在IT行业的飞速发展,无不应正了以前、现在、将来计算机行业都是科学发展的主导行业。
而这些基本上都建立在程序上的,所以程序员对计算机行业来说,可想而知有多么的重要了,他们所付出的每一滴汗水都将推动这个行业的发展。
现在我就用JA V A语言编写一个简单的程序——Java聊天程序。
将所学的基本知识用到其中去,这里包括了构造方法,创建图形界面,引用类等等。
(完整word版)JAVA聊天室实验报告
Java聊天室实验报告班级: ******学号: ********姓名:***目录:一、实验目的.。
.。
...。
.。
..。
..。
....。
..。
...。
...。
...。
..。
.。
.。
3二、所需技术 .。
.。
..。
.。
..。
..。
..。
.。
.。
.。
....。
.....。
.。
.。
.。
...。
3三、需求分析。
..。
.。
.。
..。
...。
.。
..。
.。
...。
..。
.。
.。
..。
3四、系统设计 .。
..。
.......。
...。
.。
....。
...。
.。
...。
....。
..。
.....。
.41、服务器结构 ..。
.。
..。
...。
.。
.。
.。
.。
...。
.....。
.。
.。
.。
42、客户端结构 ..。
.。
.....。
..。
...。
.。
..。
.。
.。
...。
.。
..。
.。
.。
4五、实现细节。
..。
...。
..。
...。
.....。
..。
..。
.。
....。
..。
..51、客户端细节。
.。
..。
.。
...。
..。
.。
..。
...。
..。
..。
.。
52、服务器细节 .。
.。
.。
....。
.。
.。
..。
.。
.。
..。
..。
..。
..。
.。
.。
..6六、系统展示。
...。
.。
.。
.。
.。
.。
.。
.。
.。
..。
..。
..。
..。
..。
.。
(7)七、实验小结。
.。
....。
..。
....。
.。
.。
...。
..。
...。
.。
.。
.。
..。
. (9)Rain153 WeChat 聊天室系统一、实验目的:1、使用Java技术完成聊天室系统,深入学习使用Java语言。
2、使用Java 的多线程机制,深入理解Java多线程技术的应用。
3、使用GUI,对JFrame的深入学习。
4、使用网络编程,掌握基于TCP协议的Socket编程,了解Socket编程的协议约定,掌握简单应用协议的开发.5、使用C/S架构,对网络编程有一定的了解。
二、所需技术本系统要求使用java技术开发。
所需知识包括java程序设计语言、swing基本GUI组件、多线程编程、socket编程、集成开发环境使用eclipse。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
java大作业设计报告JAVA聊天室
JAVA程序设计多人聊天室
1设计目的
Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和静态的语言。
本次课程设计旨在应用JAVA编程语言中的网络通信,多线程,数据库编程,图形界面编程等技术实现一个基本的多人在线网络聊天室。
并以此巩固JAVA基础知识,体会面向对象的设计方法。
2平台要求
2.1使用:
搭载JAVA运行环境的平台即可。
2.2开发环境:
Windows10 64bit
JDK 1.8
Eclipse 4.4
Window Builder
3需求分析
管理员:启动服务器,关闭服务器,强制用户退出,聊天房间增添改查。
用户:GUI,注册,登陆,聊天等。
用例图:
4 概要设计
4.1 服务器设计
将客户端的请求抽象化,每种请求服务器都会产生一个特定的类的对象去处理它。
服务器负责接受客户端请求,根据请求内容完成指定工作。
为提高效率,采用多线程结合线程池设计技术,对于每个请求在线程池内得到一个线程去处理请求。
如图3-1所示。
4.2 客户端设计
聊天室中一个事物的过程基本流程是:用户产生动作,客户端发送消息,服务器接收并处理,服务器返回处理结果,GUI 根
据结果进行显示的更新。
客户端只在GUI 中采用多线程设计。
而对服务器回应的接受都是单线程的因为只有一个服务器为自己服务,且在接收数据过程中连接是不可断开的。
客户端的设计如图3-2所示。
一次事物流程中的步骤编号在图中给出。
图 4-2客户端概要图
图 4-1服务器概要图
1
2
3 4 5
6 7。