当前位置:文档之家› java_web基于JSP的网络聊天室

java_web基于JSP的网络聊天室

java_web基于JSP的网络聊天室
java_web基于JSP的网络聊天室

2011-2012学年第二学期

电信学院计算机系

实验报告

课程名称JAVA Web 应用程序实验名称基于JSP的网络聊天室班级

学号

姓名

一、功能模块:

1、用户注册(注册用户保存在application中)

2、用户登录

3、用户注销

4、留言功能

二、要求:

1、用户注册、登录都要进行客户端检查是否信息为空

2、用户登录之后,服务器端需要检查是否是合法的用户

3、显示的每条信息都包括登录用户姓名、留言内容及留言时间

4、其它内容可以自己扩展

三、实验步骤和模块

实验主要有四个部分,分别为:用户注册、用户登录和用户留言以及用户注销。但因为用户注销并不是我们的主要考察内容,所以在下面的介绍及讲解过程中不再详细表述;而以其他三个部分为主。

1、用户注册

第一部分是用户注册界面,该界面主要功能是用户填写信息后提交,程序自动将用户姓名和密码保存在application中以便在用户登录时核对信息;用户如填写信息有误,可以点击重置,信息框将变为空白可以重新填写。

此模块的源代码为:form.html

Java Web

name ( 必须输入项) :


password(必须输入项):


password(请重新输入):


phonemunber( 选择输入项):


性别(必须输入项):

户口所在城市

曾经居住地

爱好:

旅游

上网

游戏

电影

看书

音乐

其他

其他爱好:


用户备注信息:

注册界面如下:

由于注册信息有要求,即客户端检查信息不能为空,如用户名和密码为空,则会出现如下错误信息提示:

而两次输入的密码一定要一致。如果用户两次密码输入不相同,在提交时会出现如下的错误提示:

修改密码,使两次密码一致后,提交信息,信息会显示在屏幕上,如下:

用户在注册后需要核实信息!

之后点返回登陆界面,用户可选择回到主界面登录

显示信息的源代码为:ex08.jsp

<%@page language="java" contentType="text/html;charset=GBK"%> <%@page import="java.util.*" %>

<%!

// 下面方法Trans的作用是将StringBuffer中的的回车符号换为
StringBuffer Trans(StringBuffer sour) {

for(int i=0; i

if(sour.substring(i,i+1).equals("\n")) {

sour.delete(i,i+1);

sour.insert(i,"
");

}

}

return sour;

}

%>

<%

request.setCharacterEncoding("GBK");

//接收text和password类信息

String name = request.getParameter("name");

String pwd = request.getParameter("pwd");

String number = request.getParameter("number");

application.setAttribute("msg",name);

application.setAttribute("msg1",pwd);

application.setAttribute("number",number);

out.println("username: " + name + "
");

out.println("password: " + pwd +"
");

out.println("phonenumber: " + number +"
");

//接收radio类信息

out.print("性别是:");

out.println(request.getParameter("sex"));

out.println("
");

//接收单选的select信息

out.println("户口所在地: ");

out.println(request.getParameter("City"));

out.println("
");

//接收多选的select信息

out.println("曾经居住过的城市:");

String juzhu[]=request.getParameterValues("juzhu");

if(juzhu != null) {

for(int i=0; i

out.println(juzhu[i] + "  ");

}

//接收checkbox类信息

out.print("爱好:");

String job[] = request.getParameterValues("JOB");

if(job != null) {

for(int i=0; i

out.println(job[i] + "
");

}

String aihao = request.getParameter("aihao");

application.setAttribute("aihao",aihao);

out.println("其他爱好: " + aihao + "
");

out.println("
");

out.println("
");

//处理textbox中的信息

String str=request.getParameter("liuyan");

StringBuffer liuyan = new StringBuffer(str);

liuyan = Trans(liuyan);

out.println("用户备注信息是:
");

out.println(liuyan);

%>


返回登陆界面

2.用户登录

本模块是程序的主界面,已注册用户可以通过填写正确信息后进入聊天室。

登录界面代码为:1.html

"https://www.doczj.com/doc/d01529377.html,/TR/html4/loose.dtd">

网络聊天室

系统登陆

账号:
密码:





还没注册吧?快点击这里

登陆显示如下:

之后用户进行登录

如用户信息填写不正确或用户还没有注册,网页会提示用户信息错误;没有注册用户可以通过本届面点及注册后进入注册页面。

如果输入的用户名或者密码不匹配所示的错误提示如下:

错误信息源代码为:login.jsp

<%@page language="java" contentType="text/html;charset=GBK"%>

<%

String name=request.getParameter("name");

String pwd=request.getParameter("pwd");

if(application.getAttribute("msg").equals(name)&&application.getAttribute("msg1"). equals(pwd))

{

session.setAttribute("login","ok");

session.setMaxInactiveInterval(-1);

response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); response.setHeader("Location","main.jsp");

}

else

{

out.println("用户名或者密码输入错误!");

}

%>

返回登陆界面

3.用户主页

在用户在成功登录后进入自己主页,可以选择进入留言版或注销,主页界面为:

主页代码:main.jsp

<%@page contentType="text/html;charset=GBK"%>

<%@include file="checkvalid.jsp"%>

要进入留言界面吗?

注销

注销则返回登陆界面重新登录

注销代码:loginout.jsp

<%@page contentType="text/html;charset=GBK"%>

<%

session.invalidate();

response.sendRedirect("1.html");

%>

在这里涉及主界面与登录界面相连接的一个小程序,checkvalid.jsp没有它就无法实现界面跳转,代码如下:

<%

Object val=session.getAttribute("login");

String strval=(String)val;

if(!"ok".equals(strval))

{

%>

<%

}

%>

4.用户留言

在用户选择进入留言室后显示界面如下所示:(当前留言为空)

在发送框输入我爱java web,然后点击发送键

在此界面用户可以输入留言点击“发送”后即可将留言发送出去,然后在上方的空白处将发送内容显示出来,同时显示用户名、信息和留言时间。具体显示如下:

这部分程序可以划分为三小块,分别是主框架,发送部分和显示部分

代码如下:

主框架chatting,html

聊天室

发送部分talk.jsp

<%@page language="java" contentType="text/html;charset=GBK"%> <%

java.text.SimpleDateFormat formatter = new

java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

java.util.Date currentTime = new java.util.Date();//得到当前系统时间String str_date1 = formatter.format(currentTime); //将日期时间格式化request.setCharacterEncoding("GBK");

String mywords=request.getParameter("message");

Object o=application.getAttribute("msg");

String str1=(String)o;

application.log(mywords);

if(mywords!=null)

{

int len_mywords=mywords.length();

int flag=1;

application.log(" " +len_mywords);

for(int i=0;i

{

if(mywords.charAt(i)=='<')

{

flag=0;

}

}

if(flag==1)

{

mywords=str1+": "+mywords+str_date1;

Object obj=application.getAttribute("words");

if(obj==null)

{

application.setAttribute("words",mywords+"
");

}

else

{

application.setAttribute("words",obj.toString()+mywords+"
");

}

}

}

%>

显示部分:message.jsp

<%@ page language="java" contentType="text/html;charset=gb2312"%>

聊天室

<%=application.getAttribute("words")%>

实验书要求实现多人注册,所以我又重新注册了登录了一个新用户www,并在留言板发送了信息,最后显示的界面如下:

5实验总结

这次实验是网络聊天室,而聊天工具在我们日常生活中必不可少,常用的通讯工具是手机和电脑,常用的软件主要有QQ、短信。飞信等等。这些软件在我们日常生活中很常用,而且我们用的也很顺手,但却从来没有想过它是怎么一步一步编程、调试而最终为大家普遍使用的。而这次我自己体验了一下简单的聊天室的制作,虽然感觉很新鲜也很好奇,但也感到很吃力。通过这次试验中对聊天室的制作过程有了初步的了解并学会了很多知识,最大的收获是学会了如何使用application来存储,调用并且匹配信息。

其实在实验中最困难的并不是代码的编写问题,因为大部分代码课堂都练习过,如注册和显示信息、留言等在书本上就有完整的代码,可以拿来就直接用。而困难的是不知道怎么几部分连接起来,特别是登陆界面和注册以及登陆很留言版之间的连接。经过和同学反复请教和交流,在不懈的努力下终于将程序完善至能过正常的跳转页面。

基于JAVA实现聊天室

第1章绪论 1.1 论文背景及课题来源 随着网络技术的发展和普及,Internet已经成为人们获取有关信息和相互交流的重要途径之一,越来越多的机构和组织开始利用网络资源传递、发布、收集和管理信息。这对各种类型的网络提供一次很大的挑战与机遇,特别是通过网络进行信息交互的这种活动,更加使网络的经营方式充满了活力和机动性[5]。 基于C/S模型的Java聊天室是应用于网络交流领域的系统,它的主要特点有:(1)通用性:聊天室系统在各种各样的网络中均可以运行,系统具有较高的可移植性和使用性; (2)实用性:系统具有良好的人机界面,便于各类使用者操作,提供了人性化的服务; (3)及时性:通过网络的连接,系统双方的交流可以在短期内进行,相比与传统面对面的交流节省不少时间[15]。 聊天室中聊天内容的及时性和准确性是极其重要的,它主要针对当今社会快节奏生活,人们没有很多时间来等信息。本系统提供的功能便于系统使用双方的信息交流,有效的提高了使用者的使用效率,缩短了使用者的使用时间[6]。 1.2 本课题在国内外的发展状况 随着网络技术的发展和普及,多数网站纷纷利用自己的网络资源建立聊天室,并为客户提供各种各样便捷的服务。中国的一些龙头网站,如sina,有很多聊天室,供国内外的不同的人们进行不同话题的讨论,不仅将会员发展由国内延伸到国际,更是为提高自身的知名度提供了方便[2]。 聊天室的开放性、信息资源的多样性可为网站发展提供优良的广告宣传和商品推广,这是其他网站活动方式所无法比拟的,聊天室趋向方便化、快捷化是各大网站成长的必然经历的阶段[8]。 1.3 应解决的问题及系统开发意义 本系统针对聊天室用户的需要,建立了客户端和服务器端。主要解决的问题包括:(1)服务器端和客户端要实现界面化,并且界面尽量人性化。 (2)服务器端能够正确的启动,并且时刻监视客户端,保持与客户端的连接。 (3)客户端能够快速准确的连接上服务器端,发送的信息经服务器端可以转发给其他客户。 (4)异常处理,对于用户的不正确的操作系统应该有提示。 基于C/S的Java聊天室系统它的开发意义在于为人们之间相互交流提供了一个快捷、方便的应用平台。大型网站可以通过聊天室来提高自身的知名度,增加的访问流量。

基于java socket的聊天室项目文档

北京邮电大学软件学院 2010-2011 学年第 1学期实训项目文档 (每个项目小组一份) 课程名称:全日制研究生实训 项目名称:通信软件实训 项目完成人: 姓名:学号: 姓名:学号: 姓名:学号: 姓名:学号: 姓名:学号: 姓名:学号: 指导教师: 日期:2011年1月21日

基于java socket的聊天室实现 一 . 实训项目目的和要求(说明通过本项目希望达到的目的和要求) 目的:熟练掌握socket编程原理,并用java socket实现聊天室 要求:实现p2p和聊天室功能 二 . 实训项目开发环境(说明本项目需要的环境) 开发工具:Eclipse SDK Version: 3.5.2 和NetBeans 6.9.1 版本 系统:win7 三 . 实训项目内容(说明本项目的内容,如:问题分析、设计方案、算法、设计图等) 1.问题分析 网络编程中两个主要的问题一个是如何准确的定位网络上一台或多台 主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协 议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一 地确定Internet上的一台主机。而TCP层则提供面向应用的可靠(tcp)的 或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,一般不需要 关心IP层是如何处理数据的。目前较为流行的网络编程模型是客户机/服务 器(C/S)结构。即通信双方一方作为服务器等待客户提出请求并予以响应。 客户则在需要服务时向服务器提出申请。服务器一般作为守护进程始终运 行,监听网络端口,一旦有客户请求,就会启动一个服务进程来响应该客户, 同时自己继续监听服务端口,使后来的客户也能及时得到服务。 两类传输协议:TCP;UDP。TCP是Tranfer Control Protocol的简称, 是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个 顺序的无差错的数据流。发送方和接收方的成对的两个socket之间必须建 立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送或 接收操作。

JAVA聊天室系统的设计与实现

目录 第1章绪论- 1 - 1.1论文背景及课题来源 (1) 1.2本课题在国内外的发展状况 (1) 1.3应解决的问题及系统开发意义 (1) 第2章开发工具及相关技术介绍........................................................................................................... - 2 - 2.1J A V A与S OCKET简介 .. (2) 2.2JB UILDER5介绍 (3) 2.3C/S模型介绍 (3) 2.4用J A V A实现S OCKET模型 (4) 2.5J A V A中的线程模型简介 (5) 2.6SQL SERVER2000简介 (5) 第3章系统需求分析............................................................................................................................... - 6 - 3.1系统任务描述. (6) 3.2系统功能分析 (6) 3.2.1 系统的功能需求....................................................................................................................... - 6 - 3.2.2系统数据流图............................................................................................................................ - 7 - 3.2.3系统数据分析............................................................................................................................ - 8 - 3.3系统可行性分析 (9) 第4章系统设计 .................................................................................................................................... - 11 - 4.1系统总体结构设计 (11) 4.2数据库设计 (12) 4.3系统功能模块详细设计 (13) 第5章编码与实现 ................................................................................................................................ - 16 - 5.1系统主要模块代码 (16) 5.1.1启动、停止服务器.................................................................................................................. - 16 - 5.1.2客户端连接服务器.................................................................................................................. - 17 -

基于JAVA网络聊天室设计

滨江学院 毕业论文(设计)题目基于JA V A网络聊天室设计 学生姓名郭胜航 学号 20072334069 院系滨江学院电子工程系 专业通信工程 指导教师张艳萍 职称教授 二O一一年五月三十日

目录 目录................................................................................. I 第1章绪论. (1) 1.1 研究背景 (1) 1.2 研究目的、内容及要求 (2) 1.2.1 目的 (2) 1.2.2 内容 (2) 1.2.3 要求 (2) 第2章系统开发环境与工具的选择 (3) 2.1 开发环境的选择 (3) 2.2 开发工具的选择 (3) 2.3 开发技术的选择 (4) 第3章需求分析 (5) 3.1 项目概述 (5) 3.1.1 产品描述 (5) 3.1.2 产品功能 (6) 3.2 功能需求 (6) 3.2.1 用户注册 (6) 3.2.2 用户登入 (7) 3.2.3 公聊 (7) 3.2.3 私聊 (8) 3.2.4 发送表情 (8) 3.2.5 聊天记录 (9) 3.2.6 系统消息 (9) 3.2.7 字体属性设置 (9) 3.2.8 用户退出 (10) 第4章概要设计 (11) 4.1 目的 (11) 4.2 运行环境 (11) 4.3 条件与限制 (11) 4.4 体系结构概述 (11) 4.5 功能设计 (12) 4.5.1 用户注册 (12) 4.5.2 用户登入 (12) 4.5.3 公聊 (13) 4.5.4 私聊 (14) 4.5.5 表情 (14) 4.5.6 字体设置 (15) 4.5.7 记录保存 (15) 4.5.8 系统消息 (16)

java编写的简单局域网聊天室(适合初学者).

import java.awt.BorderLayout; import java.awt.Button; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Frame; import java.awt.Panel; import java.awt.Point; import java.awt.TextArea; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.File; import java.io.FileWriter; import java.io.IOException; import https://www.doczj.com/doc/d01529377.html,.DatagramPacket; import https://www.doczj.com/doc/d01529377.html,.DatagramSocket; import https://www.doczj.com/doc/d01529377.html,.InetAddress; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class GUI_Chat extends Frame { private static final long serialVersionUID = 1L; private TextArea viewTextArea = new TextArea(20, 1; private TextArea sendTextArea = new TextArea(; private TextField ipTextField = new TextField(20; private Button sendButton = new Button(" 发送" ; private Button clearButton = new Button(" 清屏" ; private Button logButton = new Button(" 记录" ; private Button shakeButton = new Button(" 震动" ; private Panel panel = new Panel(; private DatagramSocket socket ;

JAVA聊天室实验报告

JA V A聊天室实验报告 姓名:马琳越 班级:131114 学号:13111368 日期:2014年4月23日

目录 目录 (2) JA V A程序课程设计任务书 (3) 摘要 (4) 第1章引言 (5) 第2章聊天室系统的设计 (7) 第3章界面设计 (11) 第4章总结 .................................................................................. 错误!未定义书签。

Java聊天室的设计任务书 1.主要内容 用JA V A实现基于C/S模式的聊天室系统。聊天室分为服务器端和客户端部分,服务器端程序主要负责侦听客户端发来的信息,客户端需要登陆到服务器端才可以实现正常的聊天功能。 2.具体要求 A.服务器端主要功能 (1).在特定端口上进行侦听,等待客户端连接。 (2).用户可以配置服务器端的侦听端口,默认端口为8888。 (3).向已经连接到服务器端的用户发送系统消息。 B. 客户端主要功能 (1).连接到已经开启聊天服务的服务器端。 (2).用户可以配置要连接的服务器端的IP地址和端口号。 (3).用户可以配置连接后显示的用户名。 (4).用户可以向所有人或某一个人发送消息。 3.主要参考文献及运用工具 (1)Bruce Eckel 著Thinking in Java ,李刚著疯狂Java讲义 (2)使用技术:Java 使用开发工具:Eclipse

摘要 在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,例如,国外的ICQ、国内腾讯公司开发的OICQ。基于Java网络编程的强大功能,本次大作业要求使用Java编写一个聊天系统。 一般来说,聊天工具大多数由客户端程序和服务器程序外加服务器端用于存放客户数据的数据库组成,但是,由于自己数据库知识的部分遗忘,本程序未连接数据库,采用客户机/服务器架构模式,通过Java提供的Soket类来连接客户机和服务器并使客户机和服务器之间相互通信。 本系统建立在JAVA平台上,系统的设计使用了面向对象技术和面向对象的设计原则。系统采用C/S结构,客户端与客户端以及客户端与服务器端之间通过Socket传送消息。使用JAVA语言编写,开发工具采用Eclipse。服务器端设计与实现过程中,采用了多线程技术,可以在单个程序当中同时运行多个不同的线程,执行不同的任务。大大增强了程序对服务器资源的利用。 聊天系统完成后将可进行多人对多人的聊天,对好友进行添加、删除,对新用户的注册,发送消息、接受消息等等功能。

基于Java的简单网络聊天室编程

基于Java的简单网络聊天室编程 摘要:当前是信息网络得到飞速发展的时代,尤其是计算机和通信技术的发展和结合,深深的影响着我们的生活、学习和工作方式。其中,网络聊天工具成为人们日常交流的一种重要工具,它成本低,通信速度快,方便信息交流和资料的传递。本次开发的网络聊天系统是基于开放的Java应用程序设计的,系统采用客户机/服务器的架构模式,由客户端程序和服务器程序外加服务器端,用于存放客户数据的数据库组成,使用Java提供的Socket类以及Java的多线程功能,在不同的端口上部署各类服务,可以在单个程序中同时运行多个不同进程,而客户端通过Socket发送信息给服务器,从而实现多点对多点的聊天。 关键字:Java,交互性,Socket类,多线程 Zhao cheng-yu Abstract:The rapid development of the information networks, especially the development and integration of computer and communication technologies, has deeply affected our lives, learning and work. Among them, the Internet chat tool becomes an important tool for daily communication, because it is low cost, fast communication and facilitat einformation exchange and data transmission. The development of the Internet chat system is designed based on open Java application. It can be dynamic, real-time information transfer and efficient interaction so that it can deal more effectively with customer requests, and is easy to maintain and update. The system will use the client / server architecture model, which includes the client program and server programs plus server-side database used to store customer data. By using the socket class provided by java and java multi-threading capability,we can deploy various services on a different port and a number of different processes can be run simultaneously in a single program. Clients send information to the server through the socket in order to achieve multi-point-to-multipoint chat. Key words: Java, interactivity, the Socket class, multi-threaded

基于java开发的网络聊天室--------[Login.java]

import javax.swing.*; import java.awt.*; import java.awt.event.*; import https://www.doczj.com/doc/d01529377.html,.*; import java.io.*; import https://www.doczj.com/doc/d01529377.html,.*; /** * * Title: HappyChat聊天系统登录程序 * * * Description: 根据指定的服务器地址、用户名和密码登录聊天服务器 * * * Copyright: Copyright (c) 2006 * * * Filename: Login.java * * * @author 公子明 * @version 1.0 **/ public class Login extends JFrame implements ActionListener { private static final long serialVersionUID = -8965773902056088264L;//通过这种方式来解决不同的版本之间的串行话问题。 private JPanel pnlLogin;//声明面板 private JButton btnLogin, btnRegister, btnExit;//声明按钮 private JLabel lblServer, lblUserName, lblPassword, lblLogo;//声明标签private JTextField txtUserName, txtServer;//声明文本域 private JPasswordField pwdPassword;//声明密码输入文本域 private String strServerIp;//字符串变量 // 用于将窗口定位 private Dimension scrnsize;

用Java编写的UDP协议简单聊天室

用Java编写的UDP协议简单聊天室: package com; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import https://www.doczj.com/doc/d01529377.html,.*; public class Chat { Frame frame = new Frame("个人聊天室"); TextField tfip = new TextField(15);// 用户输入IP地址的文本框List list = new List();// 用于显示接收消息的列表框DatagramSocket ds; public Chat() { try { ds = new DatagramSocket(50000); } catch (SocketException e) { e.printStackTrace(); } new Thread(new Runnable() { public void run() { try { byte buf[] = new byte[1024]; DatagramPacket dp = new DatagramPacket(buf, 1024); while (true) { ds.receive(dp); System.out.println("接收OK"); list.add(new String(buf, 0, dp.getLength()) + ":from" + dp.getAddress().getHostAddress(), 0);

java课程设计报告(java聊天室)

Java聊天室课程设计 一、需求分析 开发背景 在信息化社会的今天,网络飞速发展,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,类似MSN、QQ,网络聊天时一类的聊天系统的发展日新月异,因此产生了制作一个类似QQ的网络聊天工具的想法,且通过制作该程序还能更好的学习网络软件编程知识。 网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯。网编程中有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。目前较为流行的网络编程模型是客户机/服务器(C/S)结构。即通信双方一方作为服务器等待客户提出请求并予以响应。客户则在需要服务时向服务器提出申请。服务器一般作为守护进程始终运行,监听网络端口,一旦有客户请求,就会启动一个服务进程来响应该客户,同时自己继续监听服务端口,使后来的客户也得到响应的服务。 设计要求 本课程设计的目标是利用套接字socket()设计一个聊天程序,该程序基于C/S模式,客户机器向服务器发聊天请求,服务器应答并能显示客户机发过来的信息。 设计目的 通过设计一个网络聊天程序,对套接字、数据报通讯、URL、与URLConnectiom的相关知识有详细的了解和充分的认识。能将相关的只是运用到相关的实践中去。 功能实现 聊天室共分为客户端和服务端两部分,服务器程序主要负责侦听客户端发来的消息,客户端需要登录到相应的服务器才可以实现正常的聊天功能。

聊天室的设计与实现

Java 聊天室的设计与实现 学院:计算机学院 专业: 班级: 学号: 姓名:秦向红 指导老师: 2014年11月

1. 设计背景 (1) 2. 设计环境 (1) 3. 设计目的 (1) 4. Socket介绍 (1) 5. Socket的通信机制图: (3) 6.程序的设计 (4) 6.1服务器的设计 (4) 6.2客户端的设计 (7) 7. 测试及运行结果 (10) 7.1服务器的测试 (10) 7.2客户端的测试 (10) 8.设计总结 (13) 9. 参考文献 (14) 10.附代码 (14) 10.1服务器代码 (14) 10.2客户端的设计 (17)

Java 聊天室的设计与实现 1.设计背景 在互联网如此发达的今天,即时通信工具已经成为我们如常生活中必不可少的一部分。人们对网络的依赖越来越多,越来越离不开网络,而由此产生的聊天工具也越来越多,类似有QQ、MSN、、微信等,网络聊天使网络聊天系统发展的日新月异,由此产生制作了一个简单的聊天功能的网络聊天程序,由此此设计我还可以更好的学习网络软件的编程知识。 Java语言是当今流行的网络编程语言,它具有面向对象,与平台无关,安全,多线程等特点。使用java语言不仅可以实现大型企业级的分布式应用系统,还能够为小型的的,嵌入式设备进行应用程序的开发。面向对象的开发是当今世界最流行的开发方法,它不仅具有更贴近自然地语义,而且有利于软件的维护和继承。 此次设计的题目为聊天室,可以巩固所学的java语言基础知识,增进java语言的编辑基本功,拓宽常用类库的应用,使我们通过教学环节与手段,把所学的课程及相关知识加以融会贯通,全面理解网络编程的含义。 2.设计环境 操作系统:Window 8 CPU:1.80GHz 内存:4.00GB 硬盘空间:80G 开发工具:JDK1.5、Eclipse 3.设计目的 聊天室虽然程序简单,但是在设计与实现的过程中能够充分学到基于Socket的网络编程的技术,使我掌握网络编程的服务的技术,能够充分利用我近期学到的java编程语言。实现聊天功能Client/Server的面向连接的编程技术。使用多线程进行多个客户端和服务器的连接,实现数据的读取与输入。 实现网络聊天系统的设计与实现,让我们掌握网络编程的服务的技术,让同学们更加深刻的了解,掌握这方面的知识 4.Socket介绍 Socket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信机制,取后一种意思。通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。在Internet 上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。 Socket非常类似于电话插座。在这里,我以一个国家级电话网为例更加清楚的讲解一下Socket。电话的通话双方相当于相互通信的2个进程,区号是它的网络地址;区内一个

利用JAVA实现简单聊天室

利用JAVA实现简单聊天室 1.设计思路 Java是一种简单的,面向对象的,分布式的,解释的,键壮的,安全的,结构中立的,可移植的,性能很优异的,多线程的,动态的语言。而且,Java 很小,整个解释器只需215K的RAM。 因此运用JAVA程序编写聊天室,实现简单聊天功能。程序实现了聊天室的基本功能,其中有: (1)启动服务器:实现网络的连接,为注册进入聊天室做准备。 (2)注册登陆界面:填写基本信息如姓名等,可以供多人进入实现多人聊天功能。 (3)发送信息:为用户发送信息提供平台。 (4)离开界面:使用户退出聊天室。 (5)关闭服务器:断开与网络的连接,彻底退出聊天室。 2.设计方法 在设计简单聊天室时,需要编写5个Java源文件:、、、、。 3 程序功能图及程序相关说明 (1)主功能框图

(2) 聊天室基本功能表 4.程序代码是说明 程序中引入的包:package Chat; import .*; import .*; import .*; import .*; import .*;

(1)服务器端代码中用户自定义类: 类名:Server 作用:服务器启动 继承的接口名:ActionListener public class Server implements ActionListener{ 定义的对象: count 计结果与分析 5个Java源文件:、、、、。分别编译这5个Java源文件,或运行“javac *.java”命令,编译全部的源文件,然后运行连接服务器的主类,即运行Server类。连接完毕后在运行注册的主函数类,即运行LogIn类。 首先运行启动服务器的文件,运行结果如下: 图1服务器启动成功 结果分析:在进入聊天室之前必须先启动服务器,实现服务器端的连接为用户的登录打开“窗口”。 其次运行用户注册登录文件,运行结果如下:

基于java的聊天室—客户端大学论文

河北农业大学 本科毕业论文(设计) 题目:基于JA V A的聊天室—客户端 摘要 随着互联网的发展,网络聊天工具作为一种交流工具,已经受到网民的青睐。目前,出现了很多功能强大的聊天工具,其中应用比较广泛的有腾讯QQ、MSN-Messager等等。 这个项目是用Java技术制作的,其中Java是一种程序设计语言,它具有简单的、面向对象、分布式、健壮性、安全性、可移植性等特点,并且提供了多线程的功能,使得在一个程序里可同时执行多个小任务,开发中利用了计算机网络编程的基本理论知识,如TCP/IP协议、客户端/服务器端模式(Client/Server模式)、网络编程的设计方法等。在网络编程中对信息的读取、发送,是利用流来实现信息的交换,其中介绍了对实现一个系统的信息流的分析,包含了一些基本的软件工程的方法。经过分析这些情况,该局域网聊天工具采用Eclipse为基本开发环境和Java语言进行编写,首先可在短时间内建立系统应用原型,然后,对初始原型系统进行不断修正和改进,同时,采用多线程、多任务的设计思想,开发出性能稳定,功能全面的服务器。完整的实现系统的功能。通过本次毕业设计可以学到如何应用和实现面向对象的各种方法,如何使用Eclipse集成开发环境来创建和开发项目,从而完整的实现整个系统的功能。 该系统主要包括了服务器端和客户端界面使用两部分,其中服务器端用来接收新用户的注册和注册用户的登录验证以及进行服务器信息和用户信息的管理,其中用到了Socket套接字建立服务器,服务器能读取、转发客户端发来的信息。客户端通过注册界面让新用户进行注册;通过登录界面使用已注册的用户名和密码登录到聊天服务器;用户通过登录验证后即可进行在线聊天。多用户的即时聊天功能必须使用Thread类来建立多线程。本聊天系统采用Eclipse为基本的开发环境,用java语言进行程序的编写的。 关键词:客户端/服务器,多线程,聊天,socket

基于JAVA的分布式聊天系统设计(含源文件)

毕业论文 题目:基于JAVA的聊天系统设计 学生姓名: *** 学生学号: 079080617 系别: ******** 专业:******** 届别: 2011 指导教师:***

********2011届本科毕业论文 目录 未找到目录项。 基于JAVA的分布式聊天系统设计 学生:** 指导老师:*** ******************* 摘要:随着互联网的快速发展,网络聊天软件已经作为一种重要的信息交流工具,受到越来越多的网民的青睐。目前,出现了很多非常不错的聊天工具,其中应用比较广泛的有Netmeeting、腾讯QQ、MSN-Messager等等。本次设计的聊天系统就是模仿腾讯QQ来设计的。该系统开发主要包括网络聊天服务器程序和网络聊天客户端程序两个方面。前者通过Socket套接字建立服务器,服务器能读取、转发客户端发来的信息,并能刷新用户列表。后者通过与服务器建立连接,来进行客户端与客户端的信息交流。其中用到了局域网通信机制的原理,通过直接继承Thread类来建立多线程]1[。开发中利用了计算机网络编程的基本理论知识,如TCP/IP协议、客户端/服务器端架构(C/S)、网络编程的设计方法等。在网络编程中对信息的读取、发送,是利用流来实现信息的交换,其中介绍了对实现一个系统的信息流的分析,包含了一些基本的软件工程的方法。经过分析这些情况,该局域网聊天工具采用Eclipse为基本开发环境和JAVA语言进行编写,首先可在短时间内建立系统应用原型,然后,对初始原型系统进行不断修正和改进,直到形成可行系统。 关键字:JAVA;分布式;局域网; Socket;C/S Distributed JAVA-based chat system Student:***

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

Java程序课程设计任务书 JAVA聊天室的系统的设计与开发 1.主要内容: 用JA VA实现基于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平台上,系统的设计使用了面向对象技术和面向对象的设计原则。系统采用C/S结构,客户端与客户端以及客户端与服务器端之间通过Socket传送消息。使用JAVA语言编写,开发工具采用Eclipse。服务器端设计与实现过程中,采用了多线程技术,可以在单个程序当中同时运行多个不同的线程,执行不同的任务。大大增强了程序对服务器资源的利用。 聊天系统完成后将可进行多人对多人的聊天,对好友进行添加、删除,对新用户的注册,发送消息、接受消息等等功能。 关键词:多线程;客户机/服务器;JA V A ;Socket ;Eclipse ;TCP/IP

JAVA课程设计聊天室系统

J A V A课程设计聊天室 系统 -CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN

Java课程设计指导书(学生版初稿) 第二章聊天室系统 目标 背景介绍 2.1.1 业务背景 2.1.2 技术背景 需求分析 2.2.1功能需求分析 2.2.2 业务对象分析 2.2.3 验收测试要求 系统设计 2.3.1 总体设计 2.3.2 详细设计 系统实现 小结 展望

第二章聊天室系统 学习目标: 1、理解基于网络的C/S模式的软件系统结构,掌握网络编程的基本概念。 2、了解Java 的多线程机制,掌握Java多线程技术的应用。 3、熟练掌握基于TCP协议的Socket编程。 4、了解Socket编程的协议约定,掌握简单应用协议的开发。 5、进一步巩固发展团队协作能力。 学习寄语:想必大家都用过QQ,其主要功能就是聊天,是不是很想知道它是如何实现的本项目就是帮你实现一个简单的聊天系统,当然跟商业项目没法比,但从中你却可以了解这些系统是如何实现的,学到开发类似系统的基础知识和基本技能(基本并不意味不实用)。本章的内容有一定难度(多线程、基于TCP的应用协议编程),所以系统的开发采用了“增量迭代”的开发方式,由简易到繁难,希望你能顺利前行。我们的信念依然是:“不抛弃,不放弃”。你的改变和收获依然是老师真诚的期待,期待你更踏实、更自信。Come on!

背景介绍 2.1.1 业务背景 随着网络社会的不断发展,具有相同兴趣的网民需要互相远程交流,既要能省钱又要能即时交互,电话太贵、email又嫌慢,所以开发一个类似QQ 的及时通讯系统就变得非常有意义了。“Happy Chat”聊天系统应运而生,它较之QQ的唯一好处是自主开发,用的放心,更适合在局域网内使用。它提供的功能远不如QQ丰富,但应具有如下功能:(1)与聊天室成员一起聊天;(2)可以与聊天室成员私聊;(3)用户注册、登录;(4)服务器监控聊天内容;(5)服务器发送通知;(6)服务器踢人;(7)保存服务器日志。(8)保存用户聊天信息。 2.1.2 技术背景 本系统要求使用java技术开发,使用文件保存数据,集成开发环境使用eclipse。开发者应有java程序设计语言、SWING基本GUI组件、多线程、文件使用、socket编程、使用eclipse的基本知识和技能。系统采用两层C/S体系结构,C端负责通过GUI与客户交互,实现注册、登陆、收发信息、退出等功能; S端是聊天系统的应用服务器,主要有处理用户注册、登录、用户收发信息、用户退出等功能。C端和S端是通过网络交互的,其基本原理如图1所示:

java大作业设计报告JAVA聊天室

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

Java网络聊天室报告

Java网络聊天室课程报告 1系统开发的意义及需求分析 1.1整体思路 该C/S模式的聊天系统,就是服务器来提供服务端连接响应,客户端主动的发起连接请求。当多个用户同时连接到服务器时,经由服务器的接收与转发便可以实现客户之间的通信。 对于整体系统的流程,也是分为两部分,即客户端的发起请求,服务器响应请求。首先是客户端设置所想要连接的服务器,然后客户端就会根据设置的服务器IP地址,向服务器发起建立连接请求。而服务器端是始终在监听网络状态的,主要检测到有一个连接请求,那么服务器就会给当前的发起端分配一个服务线程,用于处理它的各种请求。 1.2功能需求分析 实现网络聊天的功能,采用Windows Socket(或Java Socket)编程,服务器与客户端采用了TCP/IP连接方式,在设计聊天方案时,可将所有信息发往服务器端,再由服务器进行处理,服务器端是所有信息的中心。聊天系统不外乎两个方面,服务器端和客户端。简单分析一下两个方面所要完成的任务。 服务器端的任务包括: 1、服务器端应当建立一个ServerSocket,并且不断进行侦听是否有客户端连接或者断开连接。 2、服务器端应当是一个信息发送中心,所有客户端的信息都传到服务器端,由服务器端根据要求分发信息。 以上就是服务器端最主要的两个任务。不难看出,服务器端的任务并不复杂。 客户端应该完成的任务包括: 1、与服务器端建立通信通道,向服务器端发送信息。 2、接收来自服务器的信息。 相对服务器而言,客户端的任务更加简单,有了以上的简单分析,可以知道,解决上述四个问题,即完成了该聊天系统的核心。 2.系统分析与设计方案 2.1开发环境及工具 本系统所用的工具:

相关主题
文本预览
相关文档 最新文档