《Java聊天程序的设计与实现》

合集下载

java课程设计---局域网聊天程序的设计与实现

java课程设计---局域网聊天程序的设计与实现

课程设计报告
设计名称:面向对象课程设计
选题名称:局域网聊天程序的设计与实现姓名:学号:
专业班级:
系(院):
设计时间:
设计地点:
面向对象课程设计报告第7 页,共14 页
面向对象课程设计报告第8 页,共14 页
面向对象课程设计报告第9 页,共14 页
面向对象课程设计报告第10 页,共14 页
面向对象课程设计报告第11 页,共14 页
(2).用户使用说明:
在昵称里输入想要使用的名字,在主机地址写入运行服务器端程序的电脑的ip地址,默认为localhost,代表本机,在端口号中输入和服务器端程序约定好的端口号,默认为4331,如果不一致会导致运行失败,最后选择性别后点击“连接”按钮连接服务器,弹出聊天界面。

进入聊天界面后在公共聊天区会自动显示“欢迎xx”信息。

在用户列表会显示在线的用户,点击某个用户的名字后聊天对象自动变成被电击的用户,默认是所有人。

万一用户列表显示不正确,点击刷新按钮可以从服务器重新获取用户列表。

个性化设置(仅本地有效):四种主题,字体和颜色自定义,自动换行,发送快捷键。

有用户退出会在公共聊天区显示系统信息提示并自动刷新用户列表。

(3).测试结果:
运行程序首先出现的登陆界面。

测试用户:Jarry
连接成功后的聊天界面,公共聊天区显示发给所有人的信息,我的频道显示发给指定人的信息。

界面为红色,颜色为蓝色,字体为楷体,聊天对象为Tom。

基于Java多线程技术网络聊天程序的设计与实现

基于Java多线程技术网络聊天程序的设计与实现

其 网络设 计 比较 简单 ; 服务器 则要完 成大量 的客户控 制、 据 数
转 发 等操 作 , 计起 来 相 对 更加 复 杂 。 设
就 代 表 了 不 同 的 服 务 , 以 对 于 网络 聊 天 程 序 的 服 务 器 端 必 须 所 设 定 一 个 端 口号 , 而客 户端 则 必 须 连 接 到 服 务 器 端 的 I 其 指 P和 定 的端 口 , 图 2 示 。 如 所 在 本 文 的 聊 天 程 序 中 , 用 客 户端 发 送 数 据 一 服 务 器 接 采 > 收 数 据 一 服 务 器 转 发 数 据 一 客 户 端 接 收 数 据 的 流 程 来 完 > > 成 。 由 于 该 程 序 是 一 个 服 务 器 和 多个 客 户 端 进 行 聊 天 的 , 以 所
网络 , 络 聊 天 便 成 了 大 家 沟 通 不 可 或 缺 的 一 种 方 式 。 目前 , 网
第4 层
第3 层 第2 层
涌 现 了众 多的 网络 聊 天 软 件 , Q M S UC等 , 种 网络 聊 如 Q、 N、 每 天软 件都 有 自己的特点 , 是其 核心编程 思想却 是一样 的 , 但 都 使 用 了 TC P或 UD P协 议 和 多 线 程 技 术 来 实 现 网络 聊 天 , 文 本 将 以 Jv a a为 例 , 述 网络 聊 天 程 序 的 设 计 思 路 与 基 本 设 计 方 阐 法 , 供大家参考。 以
p a f r , sn l —h e d n e h o o y t c iv h e wo k u i g TCP p o o o h tp o r m o e J v l to m ls a a lto m u i g mu t t r a i g t c n l g , o a h e e t e n t r sn i r t c lc a r g a f rt a a p a f r ca s d t h t n mi s n s s m e eo me t op o i et eu d ry n u p r . r s s i y t d v l p n r v d n e l i g s p o a o e t h t

基于JAVA局域网聊天程序设计与实现(附源代码)

基于JAVA局域网聊天程序设计与实现(附源代码)

局域网聊天课程设计摘要随着互联网的发展,网络聊天工具作为一种交流工具,已经受到网民的青睐。

目前,出现了很多功能强大的聊天工具,其中应用比较广泛的有腾讯QQ、MSN-Messager等等。

即时通讯软件,是每一个上网用户都需要的工具,它除了能够让您迅速地在网上找到自己的朋友和伙伴之外,还可以实时交谈和传递信息,截止到目前,全球约有近3亿多人使用即时软件,正因为即时通讯软件拥有数以亿计的用户和增长的市场,所以各个公司都盯上了这个最大的市场,一时间,即时通讯市场硝烟四起。

对等网络(peer-to-peer,简称P2P),应用最初出现时和现在并不相同。

事实上可以认为它是若干不同技术以及流行趋势相结合的产物。

以下是导致P2P技术发展最重要的趋势:首先,一些新技术与软件工程的结合,形成了一种将工作分散的趋势。

P2P计算正是这种分散工作趋势的结果。

其次,在企业应用集成等因素的驱动下,过去十年渐渐形成从集中的单机系统转向分布式系统。

然而随着互联网的发展,全面的分布式计算也就成为一种迫切需求。

关键词:局域网聊天 P2P javaAbstractWith the development of the Internet,the chat tool as a communication tool, has been popularly accepted by netizens of all ages. At present, there are many powerful chat tools, of which Tencent QQ, MSN-Messager are much more prevalent.Instant messaging software is necessary for every one who connects to the internet, which can not only provide you a prompt way to find friends and partners online, but can provide you the convenience of internet relay chat and information delivering. Up to now, there are about 300 million people using real-time software all over the world. As more and more corporations have focused on this market with growing potential, which has hundreds of millions of uses, the competitions among these corporations are extremely fierce.The initial application of peer-to-peer network (peer-to-peer, referred to as P2P) is not the same as it is now. In fact, it can be regarded as a combination of different technologies and fashion trends. Below are the most important trends that have led the development of P2P technology: First of all, the integration of software engineering and new technologies led to a working dispersion trend. As a result, P2P computing was born. Then, in the past decade, it has turned fro m a single centralized system to distributed system due to the motivation of factors such as enterprise application integration. At last, with the development of the Internet, however, a comprehensive distributed computing has become an urgent need.Keywords:LAN chat P2P java局域网聊天课程设计目录摘要 (i)Abstract ..................................................................................................................................... i i 1绪论 . (1)1.1JAVA的网络功能与编程 (1)1.1.1JAVA概述 (1)1.1.2 JAVA的特点 (3)1.1.3 JAVA语言在网络上的应用 (5)1.2J AVA B EANS技术 (6)1.3IP/TCP协议常识 (6)1.4S OCKET的简介 (7)1.5对等网络 (8)1.5.1 对等网络发展历史 (8)1.5.2 对等网络的概念 (9)1.5.3 对等网络的主要系统结构 (9)2 JAVAqq局域网聊天程序的需求分析 (13)2.1课题来源 (13)2.2需求分析 (13)3 JAVAqq局域网聊天程序的系统分析与设计 (15)3.1JAVA QQ局域网聊天程序的总体设计要点 (15)3.2JAVA QQ局域网聊天程序的设计步骤及功能模块划分 (15)3.3JAVA QQ局域网聊天程序各功能模块 (16)4 JAVAqq局域网聊天程序的设计与实现 (24)4.1开发环境工具 (24)4.2硬件环境 (24)4.3聊天系统功能模块的测试 (24)结论 (27)致谢 (29)参考文献 (30)附录 A 程序源代码 (31)1绪论随着互联网逐步普及,互联网技术的逐步提高。

JAVA 简单聊天程序设计模式

JAVA 简单聊天程序设计模式

public static void main(String[] args) { new ChatClient().launchFrame();
}
public void launchFrame() { //创建客户端窗口 setSize(300, 300); setLocation(400, 300); add(tfTxt, BorderLayout.SOUTH); add(taContent, BorderLayout.NORTH); pack(); this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { disconnect(); System.exit(0); } }); tfTxt.addActionListener(new TFMonitor()); setVisible(true); connect(); //调用连接方法 new Thread(new RecvThread()).start();//启动线程
4.项目介绍: 程序有两个部分完成:客户端和服务端。
由服务端开启服务,然后打开两个或者两个以上客户端,在客
户端输入信息,按 enter 键发送到服务端,然后再由服务端同时发 送到几个客户端,即实现了客户端之间的简单对话。
5.源代码及注解:
服务端:
import java.io.*; import .*; import java.util.*;
} catch (IOException e) {
} finally {
//使用完毕后关闭个端口
try {
if (s != null)
s.close();

基于java聊天系统的设计与实现

基于java聊天系统的设计与实现

基于java聊天系统的设计与实现基于Java聊天系统的设计与实现一、引言随着互联网的发展,聊天系统已经成为人们日常生活中不可或缺的一部分。

聊天系统可以帮助用户进行即时沟通、分享信息以及建立社交关系。

在本文中,我们将介绍基于Java语言设计与实现的聊天系统。

二、系统需求分析1. 用户注册与登录:用户可以通过注册账号并登录系统,以便参与聊天功能。

2. 好友管理:用户可以添加、删除、查找好友,并对好友进行分组管理。

3. 即时聊天:用户可以与好友进行即时文字聊天,并可以发送图片、文件等。

4. 群组聊天:用户可以创建、加入和退出群组,并与群组成员进行群组聊天。

5. 在线状态显示:用户可以看到好友的在线状态,并进行在线、离线切换。

6. 历史记录:用户可以查看聊天记录的历史记录。

三、系统设计1. 架构设计本系统采用客户端-服务器架构。

服务器端负责处理用户登录、注册、好友管理、聊天信息的转发等功能,客户端负责与服务器进行通信、显示界面、处理用户操作等。

2. 技术选型使用Java语言作为开发语言,采用Socket通信方式实现客户端和服务器之间的通信。

服务器端使用Java Socket 编程,客户端使用Java Swing进行界面设计。

3. 数据库设计使用MySQL数据库存储用户信息、好友关系和聊天记录等数据。

4. 功能模块设计- 用户模块:实现用户的注册、登录、注销等功能。

- 好友模块:实现好友的添加、删除、查找等功能。

- 聊天模块:实现与好友的即时聊天、发送图片、文件等功能。

- 群组模块:实现群组的创建、加入、退出等功能。

- 在线状态模块:实现好友的在线状态显示、在线、离线切换等功能。

- 历史记录模块:实现聊天记录的保存和查看功能。

四、系统实现1. 服务器端实现服务器端主要负责接受客户端的连接请求、处理用户的登录、注册、好友管理等请求,并将聊天信息转发给目标用户。

核心代码如下所示:```javaServerSocket serverSocket = new ServerSocket(port); while (true) {Socket socket = serverSocket.accept();new ClientHandler(socket).start();}```2. 客户端实现客户端主要负责与服务器端建立连接、发送用户的登录、注册、好友管理等请求,并接收服务器端的响应。

Java即时聊天系统的设计与实现 精品

Java即时聊天系统的设计与实现 精品

C/S架构的即时聊天系统的设计与实现第一章引言1.1选题背景和意义随着经济全球化的发展,世界各地的不同人、组织、机构之间的联系越来越密切。

同时伴随着互联网技术的普及和发展,网络即时通信工具已经作为一种廉价、方便的信息交流工具越来越受到人们的青睐。

在21世纪初的短短十几年间,即时通信系统(IM)的发展不断地取得了惊人的成就。

从早期只能互相发送字符并显示在双方的屏幕上的实时通信程序到现在的图形化、面向互联网、多功能的即时通信系统,科学技术的进步和整合不断地促使着即时通信系统功能越来越丰富,用处越来越广泛。

从最早的即时通讯软件ICQ诞生至今,市场上不断涌现出类似的产品。

不少厂商分别推出了自己的IM,如腾讯QQ、阿里旺旺、新浪UC、移动飞信等,这些都是我们所熟悉的PC端的即时通讯软件。

随着智能手机、平板电脑的普及,一些移动端的即时通信系统也如雨后春笋般涌现出来,如小米公司的米聊,腾讯公司的微信,还有年轻人之间很流行的陌陌、游戏玩家常用的YY语音等。

这些软件本身功能也越来越丰富,远远超出了单纯的即时聊天系统的范畴。

现在的即时通信系统不仅仅是人们的沟通工具,还成为了人们利用其进行电子商务、工作、学习等交流的平台[15][16]。

在当今社会,不管是个人用户还是企业用户,对沟通的需求总是在不断地发展。

传统的沟通交流方式如电话、传真、邮件等已经不能完全满足人们学习、工作、生活的需要。

随着计算机软件、计算机网络和移动通信技术的发展融合,集方便、廉价、快捷、实时等优点于一身的即时通讯系统可以说是继电子邮件、万维网之后,互联网上最具有杀伤力的应用。

很难想象一台个人电脑没有安装像QQ 这样的即时通讯软件。

虽然即时聊天系统设计的初衷是聊天,但正如前面所说,其功能已经超出了聊天的范畴,随着企业即时通讯工具(EIM)的出现,IM系统更是成了企业信息发布、资源共享、问题探讨和网络营销的一把利器。

通过现有的技术,企业完全可以摒弃通用的免费的即时通讯系统,转而根据自己企业的需求定制开发自己专属的内部即时通讯系统,以实现更好的管理,提高员工的工作效率。

基于Java即时聊天系统的设计与实现

基于Java即时聊天系统的设计与实现

基于Java即时聊天系统的设计与实现本科毕业设计(论文)基于Java即时聊天系统的设计与实现学号:05学生姓名:何晶指导教师:范忠诚所在学院:计算机科学技术学院所学专业:计算机科学与技术专业2016年6月摘要伴随着互联网的高速发展,产生了一系列与互联网相关的新鲜事物,即时聊天系统就是其中最具代表性的产物。

即时聊天系统经过不断地发展,凭借其迅速、便捷、即时的特点,逐渐成为一种重要的信息交流工具,受到越来越多的网民的青睐。

即时聊天系统开发主要包括两个方面:即时聊天系统服务器端设计、即时聊天系统客户端设计。

即时聊天系统服务器端设计主要通过Socket套接字建立服务器,服务器能够读取和转发从客户端发来的信息,并且能够刷新用户列表。

即时聊天系统客户端设计主要通过与服务器建立连接,从而使服务器端与客户端的信息进行交流。

在这里,网络通信机制原理得到了运用,通过直接继承Thread类来建立多线程。

同时,开发中利用了计算机网络编程的基本理论知识,如TCP/IP协议、客户端/服务器端模式(Client/Server模式)、网络编程的设计方法等。

在网络编程中利用流来实现信息的交换,从而读取和发送信息。

即时聊天系统采用myeclipse为基本开发环境和java语言进行编写,通过不断修正和改进初始原型系统,直至此系统完全可行为止。

关键词:即时聊天系统;套接字;JavaAbstractAlong with the high-speed development of Internet, produced a series of new things related to the Internet, instant messaging system is the product of one of the most representative. Instant messaging system through constant development, with its fast, convenient, real-time characteristics, becoming an important communication tool, get the favour of a growing number of Internet users. Instant messaging system development mainly includes two aspects: instant messaging system server client, instant messaging system design. Instant messaging system design mainly through the Socket server Socket server, the server can read and forward from the client's information, and be able to refresh the user list. Instant messaging system design mainly by the client and the server connection is established, which makes the server to communicate with the client's information. Here, the principle has been using network communication mechanism, through direct inheritance for building a multithreaded Thread class. At the same time, the use of computer network programming in the development of the basic theory of knowledge, such as TCP/IP protocol, Client/Server mode (Client/Server mode), network programming design method, etc. Using flow in network programming to achieve the exchange of information, so as to read and send information. Instant messaging system using myeclipse as the basic development environment and the Java language to write, by constantly revised and improved the initial prototype system, until the system is completely feasible.Key words:Instant messaging system ;socket ;Java目录第1章绪论1.1 课题背景人类社会在不断的发展,从原始社会发展到如今高度发达的文明社会,离不开人类的团结协作及创造力,而交流便是人类在发展过程中至关重要的一项技能。

java聊天程序实验报告

java聊天程序实验报告

java聊天程序实验报告《Java聊天程序实验报告》摘要:本实验报告旨在介绍和分析我们设计并实现的基于Java的聊天程序。

通过该程序,用户可以在网络上进行实时的文字交流,实现了简单的聊天功能。

我们将介绍程序的设计思路、实现过程、功能特点以及存在的问题和改进方向。

一、设计思路我们的聊天程序采用了客户端-服务器架构,通过Socket通信实现了用户之间的数据传输。

客户端和服务器端分别使用了Java的Socket和ServerSocket类来建立连接和进行通信。

客户端可以向服务器发送消息并接收其他用户的消息,服务器负责转发消息给其他在线用户。

二、实现过程在实现过程中,我们首先设计了程序的基本框架,包括客户端和服务器端的代码结构。

然后,我们使用Socket和ServerSocket类来建立连接和进行数据传输。

客户端和服务器端分别使用了多线程来处理连接请求和消息转发,以保证程序的稳定性和并发性。

三、功能特点我们的聊天程序具有以下功能特点:1. 用户注册和登录:用户可以注册新账号并登录到服务器,实现了用户身份的识别和管理。

2. 实时聊天:用户可以在聊天室中实时发送和接收消息,与其他在线用户进行文字交流。

3. 离线消息:服务器可以保存用户的离线消息,并在用户上线时进行推送,确保用户不会错过重要消息。

四、存在的问题和改进方向在实验过程中,我们发现了一些问题和改进方向:1. 安全性问题:目前我们的程序还没有实现用户身份验证和消息加密等安全机制,存在一定的安全风险。

2. 用户体验:目前用户界面较为简陋,可以进一步优化界面设计和交互体验。

3. 功能扩展:可以考虑增加文件传输、群聊等功能,丰富程序的功能特点。

结论:通过本次实验,我们成功设计并实现了基于Java的聊天程序,实现了简单的聊天功能。

在未来,我们将继续改进程序,提高安全性和用户体验,丰富功能特点,使程序更加完善和实用。

Java聊天室的设计与实现毕业设计论文

Java聊天室的设计与实现毕业设计论文

毕业设计说明书Java聊天室系统的设计与实现2017 年 5 月 17日Java网络聊天室系统的设计与实现摘要:计算机从出现到现在有了飞速的发展,现阶段的计算机已经不单单是用于进行运算的独立的个体了,跟随计算机一同发展的还有互联网技术,经过了长久的发展,互联网技术有了日新月异的发展,它的发展速度和计算机的发展速度一样的恐怖,从出现一直到现在,它已经在人们的生活的各个方面发挥着自己的作用,而且是不可替代的作用。

因为计算机发展到现在已经成为一种廉价的生活物品,可以预想到未来人们都会使用计算机,上网的人也会逐渐增多,会有不断的人完善和更新出更好更棒的互联网服务,来提高自己的生活水平。

我国近几年经济和社会在不断的发展,互联网也得到了广大的支持,网络更是已经融入了广大人民的日常生活。

在计算机编程方面,互联网软件开发逐步转向以java为首的面向对象的编程技术,传统的面向过程的编程技术已经逐渐退出了历史的舞台,java正以不可思议的速度发展。

人们日常的生活,教育,网银,网购,面对面的网上视频,以及现在逐渐被大众接受的网络游戏都在使用面向对象的技术。

而且java自身的优势以及特点能够真正减少了企业的开发成本和开发人员的开发时间和难度。

在以前,人们获取信息的方式十分单一,通过电视,广播,信件以及人们的口头相传,这种方式效率十分的底下,得到的信息也很局限。

现阶段上网查找成为人们获取信息的主要途径,它具有快速,方便,以及传递的特点。

所以人们对网上的即时面对面聊天产生了需要。

一个界面清新,简单,并且高效的网络聊天室一定会受到大众的喜爱。

为了这个目的,构建此聊天系统。

本文将介绍网络聊天室程序的设计与完成。

关键词:网络聊天室;Java;客户机/服务器;Socket;Java chat room system design and implementation Abstract:With the development of Internet technology, network technology is developing very fast in the area of computer technology, one of emerged from it until now, it in many aspects, such as politics, economy, life play an irreplaceable role. With the growing popularity of the computer and popularization, the future will be more and more people use the Internet, enjoy the constantly update and improve the network services, to improve the level of their work lives. With the development of our economy and the popularization of the Internet, the Internet technology is also used more in the daily life of people. In application development and process oriented programming technology is gradually replaced by object-oriented programming technology, the computer software design and development has become the dominant, especially in the development of network technology, the object-oriented Java language programming is development rapidly in explosive. Remote education, online banking, shopping online, video online, and online games are all using object-oriented Java technology. And Java portable features enable Java programs to be compiled into bytecode that is not relevant to the platform, which enables Java programs to run on machines with Java interpreters. It really reduces the development cost of the enterprise and the development time and difficulty of the developer.In today's society, people's lives have long been inseparable from the Internet. In the future, the life and work of society will depend more on the development of digital technology, more and more networked, digital, electronic and virtualized. E-commerce is also becoming more and more relevant with the development of the Internet and people's life. The use of the development of the Internet and the current situation and development trend, can believe network technology step by step change our work and lifestyle, and social values will all change of step by step.In today's rapid development of network, the query on the Internet become people to quickly get published, and transfer information important channel, it in many aspects, such as people, political economy, life play an important role. Traditional letter-writing methods do not satisfy people's immediate demand for information. Thus, can chat face to face on the Internet become important human needs, a popular chat tools should be: interface and pure and fresh, simple operation, humanity, saving system resources. For this purpose, build the chat system.This paper completes the development of an online chat room program through Java's sockets. This article introduces the design and completion of network chat room program.Key words:chat rooms; the Java; Client / Server;the Socket;目录摘要 (I)Abstract ................................................ 错误!未定义书签。

本科毕业论文-基于JAVA的聊天系统的设计与实现

本科毕业论文-基于JAVA的聊天系统的设计与实现

摘要随着互联网的快速发展,网络聊天工具已经作为一种重要的信息交流工具,受到越来越多的网民的青睐。

目前,出现了很多非常不错的聊天工具,其中应用比较广泛的有Netmeeting、腾讯QQ、MSN-Messager等等。

该系统开发主要包括一个网络聊天服务器程序和一个网络聊天客户程序两个方面。

前者通过Socket套接字建立服务器,服务器能读取、转发客户端发来信息,并能刷新用户列表。

后者通过与服务器建立连接,来进行客户端与客户端的信息交流。

其中用到了局域网通信机制的原理,通过直接继承Thread类来建立多线程。

开发中利用了计算机网络编程的基本理论知识,如TCP/IP协议、客户端/服务器端模式(Client/Server模式)、网络编程的设计方法等。

在网络编程中对信息的读取、发送,是利用流来实现信息的交换,其中介绍了对实现一个系统的信息流的分析,包含了一些基本的软件工程的方法。

经过分析这些情况,该局域网聊天工具采用Eclipse为基本开发环境和java 语言进行编写,首先可在短时间内建立系统应用原型,然后,对初始原型系统进行不断修正和改进,直到形成可行系统关键词:局域网聊天 socket javaAbstractAlong with the fast development of Internet,the network chating tool has already become one kind of important communication tools and received more and more web cams favor. At present, many extremely good chating tools have appeared 。

for example,Netmeeting, QQ,MSN—Messager and so on. This system development mainly includes two aspects of the server procedure of the network chat and the customer procedure of the network chat. The former establishes the server through the Socket,the server can read and deliver the information which client side sends,and can renovate the users tabulation。

Java即时聊天系统的设计与实现

Java即时聊天系统的设计与实现

1 前言3ﻩ1.1课题选题背景 .................................................................................................... 31.2即时通信的概念和特点 .......................................................................................... 31.3即时聊天系统的发展 ............................................................................................ 42 涉及的相关技术及协议4ﻩ2.1 Java语言.............................................................................................................. 42.2 C/S模式介绍 (5)2.3Hibernate框架简介ﻩ63 系统需求分析6ﻩ3.1即时聊天消息的一般需求ﻩ63.2 即时消息的协议需求7ﻩ3.3即时消息的安全需求 (7)3.4即时信息加密和鉴别ﻩ73.5 即时通讯系统需求 .............................................................................................. 74系统设计 . (7)4.1即时聊天系统的实施原理 (8)4.2软件设计流程ﻩ94.3功能模块划分10ﻩ4.4数据库概要设计10ﻩ5详细设计11ﻩ5.1 服务器端的设计与实现 (11)5.1.2 主服务器类的设计11ﻩ5.1.2登录验证模块ﻩ135.1.3 注册处理模块 (13)5.2客户端的设计与实现 ....................................................................................... 145.2.1用户注册模块ﻩ145.2.2 用户登录ﻩ155.2.3在线用户显示设计16ﻩ5.2.4聊天信息发送与接收 (17)5.3数据库设计18ﻩ6结论 ............................................................................................................................... 19参考文献 (22)附录ﻩ23ﻬ基于Java即时聊天系统的设计与实现摘要:计算机网络技术高速发展的今天,即时通讯方式日益受到人们的青睐。

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

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

JAVA聊天程序设计代码及报告import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;import java.util.Scanner;public class ChatClientpublic static void main(String[] args)final String HOST_NAME = "localhost";final int PORT_NUMBER = 1234;trySocket socket = new Socket(HOST_NAME, PORT_NUMBER);System.out.println("Connected to chat server!");BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream());PrintWriter writer = new PrintWriter(socket.getOutputStream(, true);// read user input in a separate threadThread inputThread = new Thread(( ->Scanner scanner = new Scanner(System.in);while (true)String userInput = scanner.nextLine(;writer.println(userInput);}});inputThread.start(;// continuously read server responsesString serverResponse;while ((serverResponse = reader.readLine() != null)System.out.println("Server: " + serverResponse);}} catch (Exception e)System.out.println("Error: " + e.getMessage();}}该聊天程序是一个基于TCP协议的客户端程序,使用了Java Socket 进行通信。

实验报告java聊天程序

实验报告java聊天程序

实验报告java聊天程序实验报告:Java聊天程序引言:随着互联网的高速发展,聊天已经成为人们生活中不可或缺的一部分。

为了更好地理解和应用Java语言,我们进行了一项关于Java聊天程序的实验。

本实验报告将介绍实验目的、实验环境、实验内容、实验结果以及实验总结等相关内容。

一、实验目的:本实验的主要目的是通过编写Java程序实现一个简单的聊天程序,通过网络连接两个客户端,使客户端之间可以实现文字的交互。

通过实验,我们可以更好地理解网络通信的基本概念和Java语言的网络编程。

二、实验环境:1. 操作系统:Windows 102. 开发工具:Eclipse IDE3. Java版本:Java 84. 网络环境:局域网环境三、实验内容:本实验主要包括三个部分:客户端程序、服务器程序和网络通信。

1. 客户端程序:客户端程序主要负责向服务器发送消息并接收服务器发送的消息。

在客户端程序中,我们使用Java的Socket类进行网络通信,并使用多线程实现客户端的并发访问。

2. 服务器程序:服务器程序主要负责接收客户端发送的消息,并将消息广播给其他连接的客户端。

在服务器程序中,我们使用Java的ServerSocket类进行网络通信,并使用多线程实现服务器的并发处理。

3. 网络通信:通过网络通信,实现客户端和服务器之间的消息传输。

在本实验中,我们使用Java的Socket类和ServerSocket类进行网络通信,并使用TCP/IP协议建立可靠连接。

四、实验步骤:1. 客户端程序编写:首先,我们编写客户端程序。

在客户端程序中,我们创建一个Socket对象,通过该对象与服务器建立连接。

然后,我们使用输入输出流读写数据,并使用多线程实现客户端的并发处理。

2. 服务器程序编写:其次,我们编写服务器程序。

在服务器程序中,我们创建一个ServerSocket对象,通过该对象监听指定端口的连接请求。

当有客户端连接到服务器时,我们创建一个新的线程处理该连接,接收客户端发送的消息并转发给其他连接的客户端。

Java聊天程序的设计

Java聊天程序的设计

《Java程序设计》Java聊天程序的设计班级姓名学号指导教师日期:2012年11月一、课程目的根据学过的相关内容,主要是利用Java的流、多线程和网络的功能,并根据需要结合数据库,编写一个简单的网络通讯程序,有连接(Socket)的通讯。

来加深对JAVA中各个知识点的理解。

二、实验内容及过程:①本通讯设备运用的是mysql,java支持的数据库,建立数据库,数据库名为mychat,数据库中共有两个表table t_user、chatrecord。

建表的sql语句为:其中编号字段为自动增加。

create database mychat;use mychat;create table t_user (id integer not null auto_increment,ip varchar(30),username varchar(30),primary key (id));create table chatrecord(id integer not null auto_increment,userid varchar(30),content varchar(300),primary key (id));②服务器端程序如下:服务器与客户间通过套接口(Socket)连接。

在java中通过套接口比较简单,Java API为处理套接口的通信提供了一个类.Socket使得编写网络应用程序比较简单,服务器采用多线程以满足多用户的请求,通过JDBC与后台数据库连接,并建立一个ServerSocket 对象来监听来自客户端的连接请求,默认端口为8765,主要的代码如下:public static final int PORT = 8765;public ServerThread() {clients = new Vector<ClientThread>();messages = new Vector<String>();try {serverSocket = new ServerSocket(PORT);} catch (IOException e) {}try {myIpaddress = InetAddress.getLocalHost();} catch (UnknownHostException e) {}ip = String.valueOf(myIpaddress);Server.jTextArea1.append("服务器地址" + ip + ":"+ String.valueOf(serverSocket.getLocalPort()) + "\n");broadCase = new BroadCase(this);broadCase.start();}public void run() {while (true) {try {Socket socket = serverSocket.accept();ClientThread clientThread = new ClientThread(socket, this);clientThread.start();if (socket != null) {synchronized (clients) {clients.addElement(clientThread);}}} catch (IOException e) {System.out.println("发生异常" + e);System.out.println("建立客户端联机失败");System.exit(2);}}}③客户端程序如下:客户通过Socket(Inet Address.port)建立与服务器的连接。

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

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

一.零碎需求分析之杨若古兰创作收集聊天室通常直称聊天室,是一种人们可以在线交谈的收集论坛,在同一聊天室的人们通过广播动静进行实时交谈.在当今信息时代,愈来愈多的聊天工具被利用,java说话是当今流行的收集编程说话,它具有面向对象,与平台有关,平安,多线程等特点.使用java说话不但可以实现大型企业级的分布式利用零碎,还能够为小型的的,嵌入式设备进行利用程序的开发.面向对象的开发是当今世界最流行的开发方法,它不但具有更贴近天然地语义,而且有益于软件的保护和继承,锻炼我们熟练地利用面向对象的思想和设计方法解决实际成绩的能力.本程序恰是用java说话实现了简单聊天功能.它是图形界面,线程,流与文件零碎等技术的综合利用.其界面次要采取了java.awt包,java.swing包等.二.零碎整体设计因为本软件常识一个聊天程序,程序只提供用户之间的聊天功能,故对收集传输数据请求不是很高,只需正常的传输速度就可以了.2数据管理IP地址(IP),端口(Port)本软件采取Java说话编写,Java说话是一种跨平台的编程说话,所以本软件对操纵零碎没有特此外请求.而收集传输方面采取TCP/IP收集传输和谈或者是RMI.(1)本软件客户端与用户共用一段程序.客户端编译运转后,在窗口选择侦听.用户编译运转后,在窗口选择连接.(2)本软件实现的功能有1)答应服务器侦听客户端,客户端连接到服务器2)答应服务区与客户端之间进行聊天;3)答应服务器与客户端更改布景色彩;4) 答应服务器与客户端更改字体色彩;5)服务器与客户端时,会显示内容发送时间;6)答应服务器与客户端用鼠标点击“发送”,按ENTER键均可发送内容7)答应服务器与客户端用鼠标点击关闭时关闭聊天窗口三.零碎具体设计(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 = newServerSocket(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(new ActionListener(){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的即时聊天系统的设计与实现届别2019系别信息工程学院专业软件技术班级姓名学号指导教师摘要:随着互联网的高速发展,产生了很多的网络聊天工具。

凭借着其快速,高效的优点十分迅速的在网民中散播开来。

从本质上而言,即时聊天系统开发通常涵盖下述基本内容。

其中涵盖服务器端设计,此外还涉及到客户端设计。

前者旨在基于Socket套接字,积极构建出相应的服务器,随后即可针对来源于客户端的相关信息,进行精准的读取,并实现转发操作。

此外,还可针对新用户列表进行跟踪刷新。

后者的设计原理,即基于和服务器之间,积极构建出稳定的连接,以此来实现多样化客户端彼此之间的良好交互。

对于本文所研发的服务器端而言,其重点涵盖若干子模块。

其中包含注册模块以及聊天模块。

除此之外,还涉及到登录模块以及相应的后台管理模块。

关键词:即时聊天系统;套接字;Java;AbstractWith the rapid development of the Internet, a lot of online chat tools have been produced.With its fast, efficient advantages very quickly spread among netizens.The development of instant messaging system mainly includes two aspects: server-side design and client-side design.The server-side design mainly establishes the server through Socket sockets. the server can read and forward the information sent from the client, and can also refresh the list of users.The client design mainly carries on the information exchange between the client and the client by establishing the connection with the server.The server side of the system mainly includes several sub-modules: registration module, login module, chat module, background management module.Keywords:Instant chat system;Socket;Java目录题目: 基于Java的即时聊天系统的设计与实现 (1)摘要: (2)Abstract (2)第1章前言 (3)第2章可行性分析 (4)2.1经济可行性 (4)2.2技术可行性 (4)2.3操作可行性 (4)2.4法律可行性 (5)第3章需求分析 (5)3.1系统基本功能描述 (5)3.2系统需求分析 (5)3.3数据流图 (5)3.4用例图 (7)3.5数据库设计 (8)1、数据库需求分析 (8)2、概要设计 (8)3、逻辑设计 (10)4、物理设计 (11)第4章系统概要设计 (15)4.1系统总体流程图 (15)4.2系统功能模块划分 (15)第5章系统详细设计与实现 (18)5.1系统设计与实现。

java网络编程实现一个聊天程序

java网络编程实现一个聊天程序

class Rece implements Runnable { private DatagramSocket ds; public Rece(DatagramSocket ds) { this.ds = ds; } public void run() { try { while(true) { byte[] buf = new byte[1024]; DatagramPacket dp = new DatagramPacket(buf,buf.length); ds.receive(dp); String ip = dp.getAddress().getHostAddress(); String data = new String(dp.getData(),0,dp.getLength()); if("886".equals(data)) { System.out.println(ip+"....离开聊天室"); break; } System.out.println(ip+":"+data); } } catch (Exception e) { throw new RuntimeException("接收端失败"); 6
Tcp传输最容易出现的问题 l客户端连接上服务端,两端都在等待,没有任何数据传输。 l通过例程分析: 因为read方法或者readLine方法是阻塞式。 l解决办法: 自定义结束标记 使用shutdownInput,shutdownOutput方法。
演示tcp传输。 2
演示tcp传输。
1,tcp分客户端和服务端。 2,客户端对应的对象是Socket。 服务端对应的对象是ServerSocket。 客户端, 通过查阅socket对象,发现在该对象建立时,就可以去连接指定主机。 因为tcp是面向连接的。所以在建立socket服务时, 就要有服务端存在,并连接成功。形成通路后,在该通道进行数据的传输。 需求:给服务端发送给一个文本数据。 步骤: 1,创建Socket服务。并指定要连接的主机和端口。

java毕业设计----基于JAVA局域网聊天程序设计与实现(附源代码)

java毕业设计----基于JAVA局域网聊天程序设计与实现(附源代码)

摘要随着互联网的发展,网络聊天工具作为一种交流工具,已经受到网民的青睐。

目前,出现了很多功能强大的聊天工具,其中应用比较广泛的有腾讯QQ、MSN-Messager等等。

即时通讯软件,是每一个上网用户都需要的工具,它除了能够让您迅速地在网上找到自己的朋友和伙伴之外,还可以实时交谈和传递信息,截止到目前,全球约有近3亿多人使用即时软件,正因为即时通讯软件拥有数以亿计的用户和增长的市场,所以各个公司都盯上了这个最大的市场,一时间,即时通讯市场硝烟四起。

对等网络(peer-to-peer,简称P2P),应用最初出现时和现在并不相同。

事实上可以认为它是若干不同技术以及流行趋势相结合的产物。

以下是导致P2P技术发展最重要的趋势:首先,一些新技术与软件工程的结合,形成了一种将工作分散的趋势。

P2P计算正是这种分散工作趋势的结果。

其次,在企业应用集成等因素的驱动下,过去十年渐渐形成从集中的单机系统转向分布式系统。

然而随着互联网的发展,全面的分布式计算也就成为一种迫切需求。

关键词:局域网聊天 P2P javaAbstractWith the development of the Internet,the chat tool as a communication tool, has been popularly accepted by netizens of all ages. At present, there are many powerful chat tools, of which Tencent QQ, MSN-Messager are much more prevalent.Instant messaging software is necessary for every one who connects to the internet, which can not only provide you a prompt way to find friends and partners online, but can provide you the convenience of internet relay chat and information delivering. Up to now, there are about 300 million people using real-time software all over the world. As more and more corporations have focused on this market with growing potential, which has hundreds of millions of uses, the competitions among these corporations are extremely fierce.The initial application of peer-to-peer network (peer-to-peer, referred to as P2P) is not the same as it is now. In fact, it can be regarded as a combination of different technologies and fashion trends. Below are the most important trends that have led the development of P2P technology: First of all, the integration of software engineering and new technologies led to a working dispersion trend. As a result, P2P computing was born. Then, in the past decade, it has turned fro m a single centralized system to distributed system due to the motivation of factors such as enterprise application integration. At last, with the development of the Internet, however, a comprehensive distributed computing has become an urgent need.Keywords:LAN chat P2P java目录摘要 (i)Abstract ..................................................................................................................................... i i 1绪论 . (1)1.1JAVA的网络功能与编程 (1)1.1.1JAVA概述 (1)1.1.2 JAVA的特点 (3)1.1.3 JAVA语言在网络上的应用 (5)1.2J AVA B EANS技术 (6)1.3IP/TCP协议常识 (6)1.4S OCKET的简介 (7)1.5对等网络 (8)1.5.1 对等网络发展历史 (8)1.5.2 对等网络的概念 (9)1.5.3 对等网络的主要系统结构 (9)2 JAVAqq局域网聊天程序的需求分析 (13)2.1课题来源 (13)2.2需求分析 (13)3 JAVAqq局域网聊天程序的系统分析与设计 (15)3.1JAVA QQ局域网聊天程序的总体设计要点 (15)3.2JAVA QQ局域网聊天程序的设计步骤及功能模块划分 (15)3.3JAVA QQ局域网聊天程序各功能模块 (16)4 JAVAqq局域网聊天程序的设计与实现 (24)4.1开发环境工具 (24)4.2硬件环境 (24)工程技术学院毕业设计(论文)专用纸4.3聊天系统功能模块的测试 (24)结论 (27)致谢 (29)参考文献 (30)附录 A 程序源代码 (31)1绪论随着互联网逐步普及,互联网技术的逐步提高。

基于JAVA的聊天系统的设计与实现

基于JAVA的聊天系统的设计与实现

** 科技大学电信学院课程设计说明书设计题目:基于java的聊天系统设计与实现学院、系:计算机系专业班级:计算机2011-1班学生姓名:指导教师:成绩:2013年10月27日基于JAVA的聊天系统的设计与实现摘要网络聊天工具已经作为一种重要的信息交流工具,受到越来越多的网民的青睐。

目前,出现了很多非常不错的聊天工具,其中应用比较广泛的有Netmeeting、腾讯QQ、MSN-Messager等等。

该系统开发主要包括一个网络聊天服务器程序和一个网络聊天客户程序两个方面。

前者通过Socket套接字建立服务器,服务器能读取、转发客户端发来信息,并能刷新用户列表。

后者通过与服务器建立连接,来进行客户端与客户端的信息交流。

其中用到了局域网通信机制的原理,通过直接继承Thread类来建立多线程。

开发中利用了计算机网络编程的基本理论知识,如TCP/IP协议、客户端/服务器端模式(Client/Server 模式)、网络编程的设计方法等。

在网络编程中对信息的读取、发送,是利用流来实现信息的交换,其中介绍了对实现一个系统的信息流的分析,包含了一些基本的软件工程的方法。

经过分析这些情况,该聊天工具采用Eclipse为基本开发环境和java语言进行编写,首先可在短时间内建立系统应用原型,然后,对初始原型系统进行不断修正和改进,直到形成可行系统关键词:即时通讯系统 B/S C/S MySQL Socket Swing目录第1章引言 (1)1.1 开发背景 (1)1.2 开发目的和意义 (1)1.3 论文研究内容 (2)第2章即时通讯系统的相关研究 (3)2.1 C/S开发模式 (3)2.2 B/S开发模式 (3)2.3即时通讯原理 (4)2.4 Java web 、Struts2、AJAX、JavaScript应用技术 (4)2.5 MySQL数据库应用技术 (4)2.6 Socket通信技术 (4)2.7 开发环境的搭建 (5)第3章系统分析 (6)3.1 系统基本功能描述 (6)3.2 可行性分析 (6)3.3 系统需求分析 (7)3.3.1功能分析 (7)第4章系统设计 (9)4.1 数据库设计 (9)4.2 系统模块设计 (10)4.2.1 聊天系统工作原理图 (10)4.2.2 系统功能模块图: (11)4.2.3 系统用例图: (11)4.2.4 活动图: (12)4.3 系统类设计 (14)4.3.1 Message类的设计 (14)4.2.2 截图类的设计 (15)4.2.3 聊天记录类的设计 (16)4.2.4 服务器线程类设计 (17)第5章系统实现 (18)5.1 实现概况 (18)5.2 注册模块 (18)5.2.1 流程图 (18)5.2.2 关键代码 (18)5.3 登录模块 (20)5.3.1 流程图 (20)5.3.2 关键代码 (20)5.4 聊天模块 (24)5.4.1 流程图 (24)5.4.2 关键代码 (24)5.5 文件模块 (28)5.5.1 流程图 (28)5.5.2 关键代码 (28)5.6 用户管理模块 (33)5.6.1 流程图 (33)5.6.2 关键代码 (34)5.7 其他功能的实现 (36)5.7.1 截图功能的实现 (36)5.7.2 聊天记录功能的实现 (37)5.7.3 服务端线程的实现 (38)5.8 用户界面的设计 (38)结语 (42)第1章引言1.1 开发背景随着互联网的快速发展,网络聊天工具已经作为一种重要的信息交流工具,受到越来越多的网民的青睐。

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

本科生毕业论文(设计)系(院)计算机科学学院专业计算机科学与技术论文题目Java聊天程序的设计与实现学生姓名车永华指导教师苏炳均(副教授)(姓名及职称)班级08级ACCP2班学号08339311完成日期:二0一一年十一月Java聊天程序的设计与实现车永华计算机科学学院计算机科学与技术08339311[摘要]:随着信息时代的来临,人们之间的交流也越来越趋向于网络。

因此各种聊天工具的使用也是非常频繁,如MSN、QQ之类的聊天工具也被广泛使用。

本文在研究局域网通信机制的原理和计算机网络编程基本原理的基础上,使用Java作为开发工具,开发出了一款在局域网中进行通信交流的软件。

[关键字]:Java 服务器端客户端数据传输引言当今主流的聊天工具有QQ,MSN,网易泡泡等,国内最热门的聊天工具当属腾讯QQ,是由深圳市腾讯计算机系统公司开发的,基于Internet的即时寻呼软件。

你可以通过QQ和你的亲朋好友进行交流,即时收发消息,文件传输,语音视频,发送邮件等功能,QQ不仅仅在电脑在应用,还能通过移动电话登录手机腾讯网址或者下载手机可用的手机客户端进行QQ的登录使用。

QQ支持显示好友的在线信息,即时传送信息、即时交谈、即时发送文件和网址。

QQ可以在Win95/98/NT/2000/XP/Win7操作系统下运行,是十分灵活的网络通信工具。

虽然QQ软件是免费的,而且功能也是越来越强大。

但是唯一的不足的地方就是都需要在电脑联网的情况下才能使用,脱离了Internet根本就是一个只能看不能用的软件,为了能在脱离了Internet的情况下使用的局域网聊天工具,那就必须要有服务器端,而本系统就是包括服务器端和客户端,可以在局域网聊天的一个软件。

1 开发工具概述1.1什么是JavaJava是一种可以跨平台应用的面向对象的程序设计语言,他是由Sun公司在1995年推出的程序设计语音。

Java具有很高的通用性,安全性,跨平台等特点。

Java 与一般的编译执行计算机语音和解释执行计算机语音不同。

他它首先是将源代码编译成二进制的字节码,然后在各种不同平台的虚拟机上来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台的特性,这也是Java语言最大的特点。

Sun公司在推出Java后就将它作为一种开放式的技术,从而吸引了很多编程开发者。

而Sun公司的口号之一就是“Java语言是靠群体的力量而非公司的力量”,并且获得了广大软件开发商的认可。

1.2Java语言的主要特性Java语言的主要特性有:1)Java语言是简单的。

Java语言的语法和C语言,C++语言很相近,从而使得大多数的程序员很容易学习。

2)Java语言是一个面向对象的。

比C++更纯粹的面向对象程序设计语言。

3)Java语言是分布式的。

Java的网络能力强大且易于使用。

4)Java语言是健壮的。

Java的强类型机制,异常处理,废料的自动收集等是Java程序健壮性的重要保证。

5)Java语言是安全的。

Java通常应用在网络环境中,因此Java提供了一个安全机制来防止恶意代码的攻击。

6)Java语言是体系结构中立的。

Java程序在Java平台上被编译为体系结构中立的字节码格式, 然后可以在实现这个Java平台的任何系统中运行。

7)Java语言是可移植的。

这种可移植行又来源于体系结构的中立性。

8)Java语言是解释型的。

Java程序在Java平台上被编辑为字节码格式,然后才可以在这个Java平台的任何系统中运行。

9)Java是高性能的。

与那些解释型的高级脚本语言相比,Java的确是高性能的。

10)Java语言是多线程的。

在Java语言中,线程是特殊的对象,它必须由Thread类或其子类来创建。

通常有两种方法创建:第一,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。

第二,实现Runnable接口。

11)Java语言是动态的。

Java语言的设计目标之一是适应与动态变化的环境。

1.3 Java中的布局边框布局BorderLayout、流布局FlowLayout、网格布局GridLayout、分组布局GroupLayout、Box类布局。

2.总体设计2.1功能模块图该系统主要可以分为由2个比较主要的部分组成:1)文件传输系统;2)QQ聊天系统。

文件传输系统的功能主要是接收你的QQ好友给你传送来的各种文件,然后保存在自己电脑中。

聊天系统的功能:1)新用户的注册;2)用户登录;3)修改密码;4)找回密码;5)查找添加好友;6)删除好友;7)好友分组;8)发送聊天内容;9)发送聊天表情;10)聊天字体的切换;11)屏幕震动。

图1 系统功能模块图2.2数据库设计2.2.1E-R图用户表(UserInfo):属性:用户编号(uid),用户名(uname),密码(upass),登录ip和端口号(ipport),状态(status),密保问题(question),密保答案(answer)。

关系:一个用户可以有多个好友分组。

一个用户可以有多条消息。

好友分组表(Group)属性:组编号(gid),用户编号(guid),组名(gname),好友类型(gtype)。

关系:一条记录只对应一个用户,但是可以拥有多个组员。

好友表(Friends)属性:好友编号(fid),好友分组编号(fgid),用户好友编号(fuid),图 2 E-R图2.2.2表结构设计表1 用户表(UserInfo)表2 好友分组表(Group)表3 好友表(Friends)表4 消息表(Messages)以上各表的创建代码如下:1)创建用户表CREATE TABLE UserInfo(uid INT IDENTITY(1000,1) PRIMARY KEY, --用户编号,自动增长 uname V ARCHAR(50) NOT NULL, --用户名upass V ARCHAR(50) NOT NULL, --密码ipport V ARCHAR(50), --登录ip和端口号status BIT DEFAULT(0), --是否在线,0,默认不在线question V ARCHAR(50) NOT NULL, --密保问题,用于找回密码answer V ARCHAR(50) NOT NULL, --密保问题答案face V ARCHAR(50) NOT NULL, --头像)2)创建好友分组表CREATE TABLE [Group](gid INT IDENTITY(1,1), --好友分组编号,自动增长guid INT NOT NULL, --用户编号,外键,引用UserInfo表的uidgname V ARCHAR(50) NOT NULL, --组名gtype BIT DEFAULT(1), --好友类型,1-好友,0-黑名单PRIMARY KEY(guid,gname))3)创建好友表CREATE TABLE Friends(fid INT IDENTITY(1,1), --编号,自动增长fgid INT NOT NULL, --好友分组编号,外键,引用Group表的gidfuid INT NOT NULL, --用户好友编号,外键,引用UserInfo表的uidcontext V ARCHAR(50), --好友备注PRIMARY KEY(fgid,fuid) --共为主键,保证不能添加同一个好友两次)4)创建消息表CREATE TABLE Messages(mid INT IDENTITY(1,1) PRIMARY KEY, --主键,自动增长ruid INT NOT NULL, --接收消息的用户的编号,外键,引用UserInfo表的uidsuid INT NOT NULL, --发送消息的用户的编号,外键,引用UserInfo表的uidsendTime DATETIME DEFAULT(GETDATE()), --发送消息的时间mtype BIT DEFAULT(0), --消息类型,默认为0,表示聊天信息,1表示系统消息context V ARCHAR(200) NOT NULL --消息内容,非空)以下是各表的约束:ALTER TABLE UserInfoADD CONSTRAINT ck_utelCHECK(tel LIKE '[0-9][0-9][0-9][0-9]-'+REPLICATE('[0-9]',7)OR tel LIKE '1'+REPLICATE('[0-9]',10)OR tel LIKE '[0-9][0-9][0-9]-'+REPLICATE('[0-9]',8)), CONSTRAINT ck_idcardCHECK((idcard LIKE '[1-9]'+REPLICATE('[0-9]',16)+'[0-9X]' AND ISDATE(SUBSTRING(idcard,7,8))= 1)OR(idcard LIKE '[1-9]'+REPLICATE('[0-9]',13)+'[0-9]' AND ISDATE('19'+SUBSTRING(idcard,7,8))= 1)OR idcard=null)GOALTER TABLE [Group]ADD CONSTRAINT fk_guid FOREIGN KEY(guid) REFERENCES UserInfo(uid) GOALTER TABLE FriendsADD CONSTRAINT fk_fuid FOREIGN KEY(fuid) REFERENCES UserInfo(uid)GOALTER TABLE MessagesADD CONSTRAINT fk_ruid FOREIGN KEY(ruid) REFERENCES UserInfo(uid), CONSTRAINT fk_suid FOREIGN KEY(suid) REFERENCES UserInfo(uid) GO3详细设计及实现3.1界面设计1)登录界面(如图3)该界面仿照腾讯QQ的界面,界面与腾讯QQ相比虽然不是那么美观,但是基本的功能也与其差不多了,在这个界面上用户的主要操作有用户输入用户名,密码,如果还没有注册用户名的网友可以通过登录界面的用户注册,从而使用该程序。

在登录该程序之前需要开启服务器,当用户把用户名和密码输入好后点击登录按钮后,就开始与服务器建立连接,服务器收到后开始通过jdbc的方式读取数据库的内容,然后与用户输入的用户名和密码进行比较,如果用户名不存在或者用户的密码错误则登录失败,并且提示失败的原因,如果有时候没有把服务器开启的话,则在登录失败后,会提示连接服务器超时。

相关文档
最新文档