聊天室程序设计

聊天室程序设计
聊天室程序设计

JA V A网络编程

------文本传输

学院:通信与信息工程

班级:电子商务1002班

姓名:王鹏飞

学号:1007100222

JAVA 网络聊天室

功能描述

网络聊天室是一种应用广泛网络聊天方式,操作简单,功能丰富,是教学和学习面向对象的编程思想的理想项目。可以使用多种编程语言设计和开发出功能完善的网络聊天室。

本系统采用C/S 架构设计,用JAVA 语言设计和实现,整个项目分为服务器端和客户端。使用了最新的JAVA SE 标准Swing 组件,开发出简洁美观布局合理的客户端和服务器界面;利用Socket 网络开发技术实现客户端和服务器端的连接访问,实现网络通信功能;通过对数据流合理的封装,实现信息发送和接受。同时,采用多线程、多任务的设计思想,令服务器性能稳定,客户端通信流畅,基本实现聊天室的功能。

服务器端功能:

服务器的基本功能有:启动服务器,关闭服务器,监听客户端连接请求,显示在线用户,显示客户端连接信息,发送系统消息等。

服务器

监听客户端请求

显示在线用户列表

显示客户端连接信息

发送系统消息

关闭服务器

动服务器

服务器端功能描述:

1. 启动服务器:客户在运行服务端程序后,点击启动服务器,服务器程序创建

并箭筒特定端口的ServerSocket,并启动一个主线程,等待客户端的连接,如

果有客户端连接,服务器向工作线程队列中加入与客户通信的任务,工作线程不断从工作线程中取出任务并执行。同时在服务器消息面板中显示,服务器启动成功。

2.关闭服务器:服务器关闭时,向所有连接的客户端发送消息,告知将服务器

关闭,同时关闭socket,之后服务器界面关闭

3.监听客户端请求:服务器在启动后一直监听客户端的运行情况,比如有新用

户登录,用户退出等。

4.显示在线用户:用户登录后即客户端与服务器连接成功,服务器端用户列表

界面显示出所有登录用户的用户名,用户退出后服务器更新用户列表

5.显示用户连接信息:用户在登录成功后,服务器端服务信息界面显示用户登

录的信息,包括客户端IP地址,端口号。

6.发送系统消息:可以从服务器端广播系统消息,该消息会发送给所有连接的

客户端,此功能可用于服务器管理者向所有用户发送重要的系统消息。

服务器界面如下图所示:

客户端功能:

客户端有用户登录功能,连接服务器功能,断开服务器供,显示聊天室所有在线用户功能,统计聊天室用户数量功能,显示当前用户用户名的功能,聊天室聊天功能,用户退出聊天室等功能。

功能图如下图所示:

客户端

断开服务连接

显示在线用户列表

客户端通信退出聊天室

连接服务器

用户登录

具体功能描述:

1. 用户登录:用户打开聊天室客户端程序后,输入用户名,点击连接服务器,就可以进入聊天室系统,为防止用户不知道服务地址和端口号,用户界面上已经将服务地址和端口号设定,且不能更改,用户只需输入用户名,只要用户名符合要求,可以输入任何用户名,无需注册,任何人都可以登录,退出后不会留下个人信息,如果需要再次登录只需再次输入用户名即可,可以与上次登录的用户名不一致。

2. 连接服务器:用户在输入用户名后,点击连接服务器即可进入聊天室系统,否则无法发送消息。此时服务器接收客户端的请求,与客户端建立通信,服务器显示用户的练级信息,及新用户的用户名,端口号,同时告知聊天室其他成员,某某用户加入聊天室,更新服务器与所有客户端的用户列表。

3. 断开服务连接:用户在登录聊天室成功后,如果想要退出系统,可以点击断

开服务器,或点击关闭按钮,或点击窗口关闭按钮就可退出聊天室,与服务器断开练级,用户可以重新登录。

4.显示在线用户列表:用户在登录聊天室后,服务器端增加新用户的用户名,同时遍历原有用户列表,将新用户的用户名增加到用户列表中,同时更新所有客户端的用户列表,并显示更新结果。

5.统计聊天室所有用户数量:在服务器更细用户列表后统计用户数量,并显示在所有客户端。此功能属于显示在线用户列表的次要功能。

6.显示当前用户:用户登录后,输入的用户名会保存在用户名输入文本域内,同时在用户列表中以红色字体显示当前用户的用户名。如果用户同时开启多个客户端,此功能用于区分不同的客户端。

7.聊天功能:这是聊天室的主要功能,用户可以发送任何文字与聊天室的所有成员聊天,,并且接收其他用户发送的消息,类似QQ群组的功能。

8.退出聊天室:用户在想要退出聊天室时。点击关闭按钮即可突出聊天室。此功能类似关闭连接功能。

客户端效果效果如下:(界面效果随系统主题更改)

实现技术

a)使用ServerSocket、Socket完成服务端和客户端的连接。

b)服务端使用多线程的方式可以接受多个客户端。

c)使用对象的方式,在服务端和客户端之间传送数据。

问题解决办法

d)服务端和客户端的数据通过什么方式维护?

将这些数据封装成类,服务器和客户端发送对象来维护。

e)当服务端强制退出时,应该做什么处理?

告诉客户端服务端退出,然后关闭所有到服务端的连接。客户端根据服

务端退出,断开和服务端的连接。

服务端效果图:

客户端效果图:

群聊通信:

设计思路:

实现网络通信必须建立在TCP/IP协议的基础上,致力于实现应用层,传输层向应用层提供套接字Socket接口.socket封装下层的数据传输细节。应用层的程序通过Socket来建立与远程主机的连接,以及进行数据传输。

聊天室程序采用C/S架构,因此先设计图形界面,将必要的组件布局好,然

后测试在不同计算机上的显示效果,然后更改,确定界面没有问题后,设计程序

的逻辑功能等。

服务器端程序点击启动后显示一个服务器界面,然后在启动服务器上添加监听器,要使服务器能稳定的收发数据,采用TCP的传输模式,服务器通过一直监听端口,来接收客户程序的连接请求,在服务器程序中首先创建一个ServerSocket对象,在构造方法中指定监听的端口:

serversocket=new ServerSocket(8000); //监听8000端口服务器端口号使用1025到65535之间的自定义的服务端口。

ServerSocket的构造方法在操作系统中把当前进程注册为服务器进程,服务器程序调用ServerSocket对象的accept(),方法,通过该方法一直监听端口,等待客户端的连接请求,如果接收到一个连接请求,accept()方法返回一个socket对象,这个Socket对象与客户端的Socket对象形成一条通向线路:

socket=serversocket.accept(); //等待客户端的连接请求Socket类通过调用inputStream()和outputStream()方法,返回输入流InputStream和输出流OutputStream对象。程序向输出流写数据,完成发送数据,从输入流读数据,接收来自对方的数据。

outputStream=new

ObjectOutputStream(socket.getOutputStream());

inputStream=new

ObjectInputStream(socket.getInputStream()); ObjectOutputStream继承自OutputStream

服务器启动后就一直监听端口等待客户端连接,将客户端传过来的数据封装成对象,然后通过ObjectOutputStream 将Java 对象的基本数据类型写入OutputStream。可以使用ObjectInputStream 读取(重构)对象。通过使用流则可以在另一台主机上或另一个进程中重构对象。

客户端财通同样的思路先设计程序的界面,然后在不同组件中添加监听器,客户进程的端口由所在主机的操作系统动态分配,当客户的进程要求与一个服务器进程进行连接时操作系统为客户进程随机分配一个还未被占用的端口,当客户进程与服务器断开连接时这个端口就被释放。

客户启动客户端的程序然后输入用户名,先对用户名进行校验,输入符合要求后,然后将用户名,端口号,主机地址封装成对象,然后调用socket对象的方法将数据发送到服务器上,然后服务器将用户名增加进用户列表中,然后更新用户列表,然后发送系统消息给每一个客户端,某某某上线了同时更新每一个客户端的用户列表,同时服务器获取客户端的端口号和主机地址,为防止用户输入错误,主机地址和服务器端口号已经设定不可更改。客户在登录成功后就可以发送消息,使用同样的方式,将数据封装成对象发送给服务器,服务器接收并转发个每一个客户端,这样便实现了聊天室的功能。

简单聊天系统的设计与开发

简单聊天系统的设计与开发 摘要 随着计算机的普及和快速发展,计算机网络已经渗入到我们的日常生活中,而网络聊天系统的使用最为频繁。网络聊天系统可以使人在很远的距离内进行聊天,甚至包括语音和视频的,通过网络聊天系统,不仅可以联络人们之间的感情,增进人们之间的友谊,而且还使这个世界越来越小,同时也越来越方便。因此,研究网络聊天系统是十分有意义的。 该聊天系统是一个基于C/S架构(即客户机/服务器的系统),采用Visual Studio 2005作为该聊天系统的开发环境,C#作为开发语言,运行的环境为Windows XP操作系统,后台的数据库使用Microsoft SQL Server 2005。该聊天系统能在局域网实现聊天功能,提供用户注册、登录、聊天、修改个人信息、查找/添加好友、更换皮肤、听音乐等功能。 关键词:网络聊天系统;数据库Microsoft SQL Server 2005;Visual Studio 2005

Abstract With the development of computer, Internet has entered our daily life, the most frequently use of Internet is Internet Chatting System. Therefore, it is very valuable and meaningful to study and research Internet Chatting System. Internet Chatting System can help people in chatting with other people far away. You can also have visual talk with other people through Internet Chatting System.So, it can help people to develop friendship with any people who are able to search Internet in the world. The earth looks like smaller than before because you can have relationship with people more convenient. It is based on the system of C/S, use Visual Studio 2005 as exploit language of the environment. Its running environment is Windows XP operating system. And uses Microsoft SQL Server 2005 as its background database management system. Clients can run this Internet Chatting System under Windows XP environment.This system can do a full management on scientific project and scientific and technology paper, providing necessary functions of everyday management, for example, data input, query with more conditions, statistics, report forms output etc. and easy to use. Keywords:Scientific research project management system;Database SQL Server 2005;Visual Studio 2005

聊天系统-程序设计实践报告

程序设计实践 设 计 报 告 课题名称:网络聊天程序的设计和实现学生姓名: 班级: 班内序号: 学号: 日期:

1.课题概述 1.1课题目标和主要内容 课题实现的主要内容:本程序实现一个简单的网络聊天程序,采用客户机/服务器(Client/Server)模式,将客户端和服务端功能在一个程序中实现,运行时在不同的计算机上打开此程序即可进行聊天。程序实现一对多,多对多聊天功能,满足聊天的基本功能。 课题目标:学会使用MFC搭建基本的对话框及基本控件的使用,了解socket套接字相关知识,实现简单聊天程序。通过实践复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力。 使用的开发平台:Microsoft Visual Studio 2010、windows7 采用的主要工具:计算机、相关图书资料 1.2系统的主要功能 功能列表或功能框图,以及功能的简要说明。

服务器端负责指定ip地址及端口号,建立服务器,有监听、接受、发送消息等功能。客户端通过指定的ip及端口号来连接服务器,有接受和发送消息等功能。 2. 系统设计 2.1 系统总体框架 包括系统框架图或层次逻辑图,设计思想等 首先由服务器在指定的端口开通指定的服务,然后在客户机通过指定服务器地址、端口来连接服务器以获得指定的服务。 服务器端 首先由一个服务器启动一个线程监听来自客户器的Socket连接,当服务器的Socket与客户器的Socket经过TCP协议的3次握手建立了连接后,双方就可以通过这个连接来进行信息的发送和接收,并可以进行文件的传输。在进行程序设计时,对于多个用户连接服务器采用了多线程处理,每个客户端的Socket都启动一个线程来连接服务端的Socket,服务端的Socket接受连接后,通过一个结构体保存已经连接的客户端的地址和套接字,当客户端发送一个信息到服务端,服务器接收信息后,再从结构体中取出已保存的套接字转发所收到

网络聊天室系统设计与实现

科研训练 网络聊天室系统设计与实现Design and implementation of network chat room system 学生姓名XXX 专业软件工程 学号1305XXXXX 指导教师李XX 祝XX 学院计算机科学技术学院 二〇一六年六月

目录

一、引言 随着网络的大幅度普及,以及网络技术快速发展,人们通过网络进行交流的方式发生着巨大的变化,人们不再拘泥于移动电话的通话模式,越来越多的人通过网络聊天工具进行交流,网络聊天室便是非常典型的聊天工具之一。聊天室系统的即时交流方式满足了网络中人们同时与多人进行聊天交流的需要,使得较多的人在同一个聊天页面进行交流变得方便,简单。 本设计所完成的网络聊天室具有常用聊天室的所有功能,包括使用账号登录聊天室、注册账号、显示在线用户列表、显示系统消息、两人之间进行私密聊天、消息提醒、发送表情、修改发送文字颜色;同时,为了管理聊天室中的用户使用语言的文明,赋予管理员踢出使用不文明语言的用户功能,显示全部聊天信息。该系统采用B/S(浏览器/服务器)结构进行开发,参考网络中正在使用的大型聊天室的架构、分析聊天室可实现功能,结合本次设计的相关要求,进行开发设计并写出需求分析说明书。 该系统具体开发环境:使用专业版作为服务器运行平台,服务器开发语言使用Java语言,前台使用Jsp技术、JavaScript、Jquery语言,系统框架使用 Struts2+Hibernate+Spring框架,后台数据库使用MySql数据库。 二、需求分析 该系统采用B/S模式设计,开发目的主要是提供一个基于网络的安全文明的供多人聊天社交平台。 系统运行环境需求 该系统是在windows 专业版操作系统下,搭建的运行平台,使用myEclipse作为开发工具,mySql作为数据库,Java语言作为系统后台开发语言。 JSP技术作为前台开发语言,其中使用JavaScript以及Jquery作为脚本语言。工程框架使用Struts+Spring+Hibernate框架。 (1)服务器配置: (2)客户端要求配置: 谷歌浏览器、狐火浏览器以及IE浏览器以上版本。 模块功能分析 (一)用户注册登录模块 新用户在使用该聊天室系统时,必须先进行注册新用户操作,后台将注册信息添加到数据库中,用于胡勇登录验证;在注册成功之后再进行登录; 当用户名与密码匹配成功,即可进入聊天室系统。 (二)在线用户显示模块 当用户登录进入系统后,该页面实现在线用户的统计,并将在线用户依次显示出来。如果当前用户属于管理员角色,则在普通用户角色的右边显示“踢下线”链接,如果当前用户属于普通用户角色,则正常显示在线用户名。 (三)用户交流聊天模块 该模块主要负责发送信息内容,选择聊天对象;除此之外,可以修改聊天内容的字体颜色以及发送的表情。发言的颜色和发言的表情通过下拉式组合框实现。发言内容书写完毕后。通过点击“发送”按钮,发送聊天内容。 (四)聊天信息显示模块 当用户选择聊天对象并发送聊天内容后,显示出当前发送的内容以及之前的历史聊天内容,聊天的内容只有对话的两人可见,其他人不可见。当用户退出系统后,再次登录进入聊天室时,两人的对话记录依然存在。

Java聊天室系统程序设计实验报告

Java聊天室系统程序设计 实验报告 题目:****** 院(系):****** 年级专业:****** 学生姓名:****** 指导老师:****** 开始时间:****** 完成时间:******

第一部分:课程设计总述 课程设计目的: 1.学会Java程序开发的环境搭建与配置,并在实际运用中学习和掌握Java 程序开发的全过程。 2.进一步熟悉掌握Java程序设计语言的基础内容,如用户图形界面设计、 Java多线程编程、Applet程序的设计、文件和网络输入输出流编程、Java 数据库编程等。 3.通过亲自动手写程序,一方面拓展知识面,一方面锻炼调试能力。 课程设计总体要求: 1.问题的描述与程序将要实现的具体功能。 2.程序功能实现的具体设计思路或框架,并检查流程设计。 3.代码实现。 4.程序测试(如程序代码、功能测试、可靠性测试和效率测试等)。 5.设计小结(包括) 课程设计题目: 目标 本软件是一个实用聊天程序。项目要实现以下目标: 1)允许用户注册; 2)允许注册用户登录聊天室; 3)登录用户之间进行聊天文件传输; 4)用户可以更改背景音乐; 用户信息的保存 本软件只是一个聊天室程序,所以用户只要打开程序就可以登录。本软件使用文本文件或者数据库来保存用户数据。 需求分析 对功能的规定

1.系统的用例图(对注册用户) 2.用户注册过程

3.用户登录过程 对性能的规定 由于本软件只是一个聊天室程序,程序只是提供用户之间的聊天和文件传输,故对网络传输数据要求不是很高,只要正常的传输速度就可以了。 需要管理的数据 用户的信息如下:用户名,密码,头像,电子邮件,地址。 4 开发环境 本软件采用Java语言编写,Java语言是一种跨平台的编程语言,所以本软件对操作系统没有特别的要求。而网络传输方面采用TCP/IP网络传输协议或者是RMI。

聊天室系统设计报告

青岛科技大学操作系统课程设计 学生班级计算机132班 学生学号1308010204 学生姓名王永远 2016 5 18 ______年 ___月 ___日

目录 设计题目:聊天室系统 (3) 一、设计目的及要求 (3) 1.1设计目的 (3) 1.2设计要求: (3) 二、技术背景 (3) 2.1网络编程 (3) 2.2网络通信 (3) 2.3 Socket (3) 2.4 TCP传输 (4) 2.5 Java的多线程机制 (4) 三、需求分析 (4) 3.1客户端 (4) 3.1.1登录 (4) 3.1.2多人聊天 (4) 3.1.3单人聊天 (5) 3.2服务器端 (5) 四、总体设计 (5) 4.1设计思想流程图 (5) 4.2设计思想分析 (6) 五、详细设计 (6) 5.1客户端设计 (7) 5.1.1登录界面 (7) 5.1.2聊天室界面 (7) 5.1.3单人聊天界面 (7) 5.2服务器端设计 (8) 六、系统测试 (8) 6.1登录测试 (8) 6.1.1用户名为英文字母 (8) 6.1.2用户名为中文 (9) 6.1.3用户名为标点符号 (9) 6.1.4多个用户有重名 (10) 6.1.5服务器地址不合法 (11) 6.1.6端口号不合法 (12) 6.1.7服务器未开启 (12) 6.2群发消息测试 (13) 6.3私聊测试 (15) 6.4用户列表显示测试 (16) 七、心得体会 (16) 八、参考资料 (16) 九、程序清单 (16)

设计题目:聊天室系统 一、设计目的及要求 1.1设计目的 通过该聊天室系统,掌握网络编程的概念及基于网络的C/S模式软件系统开发,掌握基于TCP 协议的Socket编程,掌握Java的多线程机制。 1.2设计要求: 实现多个用户之间类似于QQ的聊天程序,有聊天界面,多用户之间既可以实现群聊,也可以单独聊天。 二、技术背景 2.1网络编程 就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换。 2.2网络通信 (1)IP地址:网络中设备的标识,不易记忆,可用主机名 要想让网络中的计算机能够互相通信,必须为每台计算机指定一个标识号,通过这个标识号来指定要接受数据的计算机和识别发送的计算机,在TCP/IP协议中,这个标识号就是IP地址。 (2)端口号:用于标识进程的逻辑地址 物理端口网卡口 逻辑端口我们指的就是逻辑端口 A:每个网络程序都会至少有一个逻辑端口 B:用于标识进程的逻辑地址,不同进程的标识 C:有效端口:0~65535,其中0~1024系统使用或保留端口。 (3)传输协议:通信的规则,常见的有UDP,TCP UDP:将数据源和目的封装成数据包中,不需要建立连接;每个数据报的大小在限制在64k;因无连接,是不可靠协议;不需要建立连接,速度快。 TCP:建立连接,形成传输数据的通道;在连接中进行大数据量传输;通过三次握手完成连接,是可靠协议;必须建立连接,效率会稍低。 2.3 Socket (1)Socket套接字 网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字。 (2)Socket原理机制 A:通信的两端都有Socket。 B:网络通信其实就是Socket间的通信。 C:数据在两个Socket间通过IO传输。

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

南京晓庄学院 《JAVA程序设计》 课程设计报告 Java聊天室的设计与实现题 目 姓名:戴佳伟 学号:14552019 班级:14软件工程3班 指导教 王峥 师: 完成时间2016.10.7 成绩: 信息工程学院 2016年6月

目录 1引言.............................. . (3) 1.1 java 聊天室开发背景.................................... (3) 1.1java 聊天室开发的目的和意义........ (3) 1.2完成的主要工作.................... (4) 2 需求分析和总体设计................ (5) 2.1 需求分析与设计思路................ (5) 2.1.1 关键技术说明 .................................... . (5) 2.1.2 需求分析..................... ....................... 6 2.1.3 java 聊天室设计方案与思路 (6) 2.1.4 java 聊天室目录结构说明....... (7) 2.2 java 聊天室功能结构 .................................... (8) 3 详细设计.......................... (10) 3.1 java 聊天室模块实现 .................................... (10) 3.1.1 XX 模块实现.................. ..................... 10 4 java 聊天室运行结果.................................... (13) 5课程设计总结...................... .. (15)

网络聊天室的实现计算机操作系统课程设计

实验报告 | | 实验名称网络聊天室的实现 课程名称计算机操作系统 | | 目录 【1】设计原理———————————————————————4 【2】程序流程图——————————————————————9 【3】设计步骤———————————————————————10 【4】使用方法说明—————————————————————21 【5】实验结果及分析————————————————————24 设计原理 计算机网络技术发展至今已经大大超越了人们当初的预想,无论是人们日常的工作还是学习,我们都越来越多的依靠到互联网。各种实时性的聊天娱乐软件也同时诞生,而且为我们的即时通讯带来了众多的方便,比如说大家所熟知的腾讯QQ、微软的MSN、移动的Fetion等,都是做的比较成功的实时聊天工具。随着网络的日益普及,各种聊天工具也层出不穷,接下来的课程设计就是针对一个简单的网络聊天程序,利用MFC为开发工具,实现基本的通讯功能。 此程序主要分为两部分:服务器端和客户端。服务器端用于提供一个网络端口,等待客户端发出请求,登录到此服务端,然后进行网络通讯和消息的转发;客户端可通过服务器端的IP地址发送连接请求,然后登陆聊天室。在服务器端的成员列表栏中会显示在线的所有人名单,有人退出聊天室,成员列表会自动除名。服务器端同时也提供了成员之间的私聊功能,此时服务器端作为一个转发站,进行消息的转发。整个程序的主体使用了CSocket 类的方法,实现了网络通讯聊天。 整个程序设计为两个部分:服务器(ChatServer)和客户端(Chat)

多人聊天的关键在于要将每个客户端发送过来的消息分发给所有其他客户端,为了解决这个问题,在服务器程序中建立一个套接口链表,用来保存所有与客户端建立了连接的服务端口。下面描述了多人聊天的实现原理: 当客户端Client N向对应的服务端口N发送了消息Message,服务端口N将Message 复制给所有套接口列表(USERLIST)中的套接口缓冲区,然后向每个服务端口发送WRITE 消息,使每个服务端口将Message发送给对应的客户端。这样,所有客户端就都获得了Message消息,实现了多人聊天功能。 BOOL CClientSocketList::Sends(char *buff,int n) {CClientSocket *curr=Head; while (curr) {curr->Send(buff,n); curr=curr->Next;} return true;} USERLIST表时多人聊天程序的核心,它是一个动态变化的链表,为空表示没有客户端建立了连接,不为空时每个元素就代表有一个客户端与服务器建立了连接。 以下程序是私聊功能的实现: BOOL CClientSocketList::OnlySend(char *buff,int n,int who) { CClientSocket *curr=Head; while (curr && who>0) {curr=curr->Next; who--;} curr->Send(buff,n); return true;} 以下是此程序的效果截图:

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

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

聊天室设计报告

网 络 聊 天 系 统 设 计 报 告 组长:靳子豪 组员:凯强、许玉军、王明明 完成时间:2015年11月3日

一、可行性研究报告 可行性研究报告(ISO标准) 编者说明: 在立项时,应该对项目进行综合分析,探讨项目的经济、社会、技术可行性,从而为决策提供基础。该模板为ISO标准文档模板,其不仅适用于软件项目,对于其它的系统项目也适用。 1.引言 1.1 编写目的 该聊天室项目可行性研究报告是对项目课题的全面考虑,是项目分析员对下一步工作进行的前提,是软件开发人员正确成功开发项目的前提与基础。写可行性研究报告可以使软件开发团体尽可能早的估计研究课题的可行性,较早的认识到系统方案的缺陷,可以少花时间和精力,也可减少成本资金,避免专业性的问题。 1.2 背景 a. 待开发系统的名称:信息交流系统 b 用户:大众 c. 它基于web小浏览器的程序系统的设计与开发, 服务平台:appserv-win 开发语言:PHP 数据库:MY SQL 1.3 定义 技术可行性:分析功能,性能以及限制条件,能否是一个技术上可实现的系统 经济可行性:估计开发费用已及最终从开发成功的系统所获得的收入或利益,衡量比较支出的费用和收到的利益 1.4 参考资料 《软件工程导论》(第6版)清华大学海藩牟永敏编著 可行性研究的前提 2.1 要求 a、聊天室功能 用户的聊天功能,包括数据输入、修改、删除,并要达到界面美观又好、使用方便 b、软件的性能 开发该软件应具有的基本要求与功能是实现用户信息数据包括与用户有关的数据 的管理与操作处理,基于MY SQL的数据库的数据管理使该软件有更优异的性能,软件的基本数据流动为用户数据的输入,用户信息及数据的输出。 c、输出 用户基本信息和聊天容 d、输入 用户根据自身需要,发起聊天 e、安全方面的要求 设置管理员 2.2 目标 该软件的设计目标必须尽量达到人力与设备费用的节省,软件的整个设计过程必须通过生产能力的提高、人员工作效率的提高等等使软件开发成本最小化。 2.3 条件、假定和限制 a、本聊天室建议使用寿命为5-10年 b、法律方面的限制:(1)、严禁危害国家信息安全(2)、严禁损害国家荣誉和利益(3)、严禁传播不良信息(5)、严禁抄袭 2.4 进行可行性研究的方法 成本效益分析、对估算问题的看法、软件的作用围、软件的成本估算、速度安排

网络课程设计实验报告--QQ聊天实现

计算机网络课程设计报告 设计选题网络聊天室 姓名马继鸣 学号 0909090630 完成时间 2012-1-12 一、需求分析

聊天工具大多数由客户端程序和服务器程序外加服务器端,本程序采用客户机/服务器架构模式。通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能。用多线程可完成多点对多点的聊天。 主要有两个应用程序,分别为服务器程序和客户端程序。服务器应用程序主要用于消息转发,以及向所有用户发送系统消息等;客户端应用程序主要用于客户聊天记录的显示和信息输入。采用Client/Server(C/S)体系结构,即客户机/服务器体系结构。聊天服务器专门用于监控用户状态和转发消息,客户端负责接收消息的用户序列和消息文本发送到服务器。该聊天系统实现群聊,用户登陆,退出聊天系统等功能。 二. 设计 1.设计思想: 课程设计中利用JAVA实现基于C/S模式的聊天程序。聊天室共分为服 务器端和客户端两部分,服务器端程序主要负责侦听客户发来的消息,客 户端登录到服务器端才可以实现正常的聊天功能。

2.功能设计 (1)服务器端的主要功能如下。 在特定端口上进行侦听,等待客户端连接。用户可以配置服务端的侦听端口,默认端口为10000. 当停止服务时,断开所有用户连接。 (2)客户端的主要功能如下。 连接到已经开启聊天服务的服务端。 当服务器端开启的话,用户可以随时登录与注销。

用户可以向所有人发送消息。 3.详细设计 聊天室服务器端设计 聊天室服务器中主要的功能文件的功能如下: MyButLis.java 主要用于添加事件侦听和动作处理,具体是服务器按钮中的“终止”“发送”的处理。 public class MyButLis implements ActionListener private MyServe server; private JTextField filed1; public void actionPerformed(ActionEvent e) MyChatSet.java 服务器的线程队列,运行的方法,新增一个用户,则增加一个线程,并可以返回应答消息,给其余用户发送上下线信息,发送聊天信息(群聊私聊虽然已写,但是不知为何没有实现),发送用户列表。关键在于除了线程之外,还定义了传输数据时的协议内容,如何分辨不同的信息,如聊天信息,登陆信息,上下线信息,并把信息完整准确的传递。 public static ArrayList servers=new ArrayList();//线程队列 public static void addThread(MyserThread th) //增加一个服务器线程对象 public static void sendReMess(String type,String state,String s,MyserThread myth)//返回应答信息 public static void SendOSMess(String type,String user)//其他用户上下线信息 public static void SendChatMess(String type,String sender,String reciver,String Mess)//聊天信息 public static void SendList//用户列表 MyCheckTool.java 保存用户的登陆信息,在其中建立一个码表,并且可以判断登陆信息是否合法。 //建立码表,用以保存用户信息 private static Map maps=new HashMap(); public static boolean CheckUser(MyUserInfo user)// 验证用户名

Java聊天室的设计与实现方案

Java聊天室的设计与实现方案 (WORD版完整可编辑,需更多资料请联系) 摘要 本次毕业设计主要实现了基于Java的聊天系统的功能。此系统在模仿QQ软件的基础增加了通信的安全性。在现在已有的聊天软件中,经常用户的帐号会被盗取,导致用户建立起来的与各个朋友的联系方式被盗取。因此对所有通过网络来传输的数据都需要进行加密来保证其安全性。 通过分析聊天系统的功能以及性能等的需求,运用了 java技术,设计并实现了基于java的聊天系统,并在Eclipse上搭建了项目及运行。 该系统总体划分为两大功能模块:客户端功能模块和服务器端功能模块。客户端又分为用户注册、已注册用户登录、用户的好友显示、用户之间的聊天、添加好友、查看用户好友信息六大服务功能模块。实现了聊天系统所需要的各项功能。此外,使用SQL Server20005数据库来实现数据存储,设计并编写java类来实现对SQL Server2005数据库中的数据的操作。 关键字 Java聊天系统; Eclipse;SQL Server2005数据库

Design and implementation of Java chat room Abstract The main achievement of the graduate design features Java-based chat system. This system is the basis of imitation QQ software to increase the security of communications. In the chat software now has regular user's account will be stolen, causing the user to build up contacts with various friends was stolen. Therefore, all data transmitted over the network needs to be encrypted to ensure security. By analyzing the demand chat system functionality and performance, the use of java technology, design and implementation of java-based chat system, and built on the Eclipse project and run. The overall system is divided into two modules: the client and server-side functional modules function modules. Client is divided into user registration, registered user login, the user's friends show chat between users, add friends, view the user's friends information six service modules. Chat system implements the functions required. In addition, the use of SQL Server20005 database to store data, design and write java class to implement the data SQL Server2005 database operations. Keywords: Java chat system; Eclipse; SQL Server2005 database

聊天室程序设计报告

实验5 掌握简单的网络通讯技术 实验6 掌握基于典型协议的的网络通讯技术 一实验目的 1.熟悉Socket的通讯机制,了解网络程序的设计方法。 2. 熟悉典型协议的通讯机制,掌握基于它们的网络系统设计方法。如TCP、UDP。 二实验环境 1.Windows7 2.Visual C++ 6.0 三实验程序设计 1.实验原理 1.C/S模式 C/S模式是指一个服务器同时为多个客户端服务。并发性是C/S模式的的基础,正是由于并发性的支持,多个客户端能够获得同一种服务,而不必等待服务器完成对上一个请求的处理。 在C/S模式中,当请求到达服务器时,服务器将它交给一个控制线程,它能与已有的线程并发的执行。 在设计并发服务器时,一般服务器代码由两部分组成,第一部分代码负责监听并接收客户端的请求,还负责为客户端请求创建新的服务线程;另一部分代码负责处理单个客户机请求,如与客户机交换数据,提供具体服务。 下图所示为服务器创建多个线程来为多个客户机服务。 2.基于TCP的socket通信 服务器与客户端是通过套接字来进行通信的。 在基于TCP的网络通信程序中,首先服务器端通过socket()函数创建套接字,然后通过bind()函数来命名套接字,调用listen()函数开启服务器端的监听。接着执行accept()函数来接收客户的连接,服务器阻塞等待客户连接请求,直到有客户请求连接。 客户端创建套接字,接着通过connect()函数请求连接服务器,连接成功后,就可以与服务器进行通信了。 服务器与客户机通过send()各recv()调用来进行信息的发送和接收。只有当有信息可接收时,recv()才返回,否则将阻塞。

简单聊天系统的设计与实现

JISHOU UNIVERSITY 专业课课程论文 简单聊天系统的设计与实现 题目: 作者: 学号: 所属学院:信息科学与工程学院 专业班级: 总评分: 完成时间: 吉首大学信息科学与工程学院 简单聊天系统的设计与实现 (吉首大学信息科学与工程学院,湖南吉首 416000) 摘要 网络聊天室通常直称聊天室,是一种人们可以在线交谈的网络论坛,在同一聊天室的人们通过广播消息进行实时交谈。在当今信息时代,越来越多的聊天工具被应用,java语言是当今流行的网络编程语言,它具有面向对象,与平台无关,安全,多线程等特点。使用java语言不仅可以实现大型企业级的分布式应用系统,还能够为小型的的,嵌入式设备进行应用程序的开发。面向对象的开发是当今世界最流行的开发方法,它不仅具有更贴近自然地语义,而且有利于软件的维护和继承,锻炼我们熟练地应用面向对象的思想和设计方法解决实际问题的能

力。本程序正是用java 语言实现了简单聊天功能。它是图形界面,线程,流与文件系统等技术的综合应用。其界面主要采用了包,包等。 关键词:网络聊天室;java;面向对象;通信机制;图形界面

目录 Eclipse (3) SQL Sever数据库 (3) 经济可行性 (4) 操作可行性 (4) 技术可行性 (4) 注册 (4) 登录 (5) 私聊 (5) 消息格式化设计 (10) 界面设计 (10) 登录界面 (10) 注册界面 (11) 聊天界面 (11)

3

第一章引言 当今主流的聊天工具有QQ,MSN,网易泡泡等,国内最热门的聊天工具当属腾讯QQ,是由深圳市腾讯计算机系统公司开发的,基于Internet的即时寻呼软件。你可以通过QQ和你的亲朋好友进行交流,即时收发消息,文件传输,语音视频,发送邮件等功能,QQ不仅仅在电脑在应用,还能通过移动电话登录手机腾讯网址或者下载手机可用的手机客户端进行QQ的登录使用。QQ支持显示好友的在线信息,即时传送信息、即时交谈、即时发送文件和网址。QQ可以在Win95/98/NT/2000/XP/Win7操作系统下运行,是十分灵活的网络通信工具。 虽然QQ软件是免费的,而且功能也是越来越强大。但是唯一的不足的地方就是都需要在电脑联网的情况下才能使用,脱离了Internet根本就是一个只能看不能用的软件,为了能在脱离了Internet的情况下使用的局域网聊天工具,那就必须要有服务器端,而本系统就是包括服务器端和客户端,可以在局域网聊天的一个软件。

聊天室的设计与实现

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

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

2.1 背景介绍 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所示: 图1 C/S通讯基本原理图

聊天室设计报告

聊天室设计报告

————————————————————————————————作者:————————————————————————————————日期: ?

网 络 聊 天 系 统 设 计 报 告 组长:靳子豪 组员:冯凯强、许玉军、王明明

完成时间:2015年11月3日 一、可行性研究报告 可行性研究报告(ISO标准) 编者说明: 在立项时,应该对项目进行综合分析,探讨项目的经济、社会、技术可行性,从而为决策提供基础。该模板为ISO标准文档模板,其不仅适用于软件项目,对于其它的系统项目也适用。 1.引言 1.1 编写目的 该聊天室项目可行性研究报告是对项目课题的全面考虑,是项目分析员对下一步工作进行的前提,是软件开发人员正确成功开发项目的前提与基础。写可行性研究报告可以使软件开发团体尽可能早的估计研究课题的可行性,较早的认识到系统方案的缺陷,可以少花时间和精力,也可减少成本资金,避免专业性的问题。 1.2背景 a. 待开发系统的名称:信息交流系统 b 用户:大众 c.它基于web小浏览器的程序系统的设计与开发, 服务平台:appserv-win 开发语言:PHP 数据库:MY SQL 1.3定义 技术可行性:分析功能,性能以及限制条件,能否是一个技术上可实现的系统经济可行性:估计开发费用已及最终从开发成功的系统所获得的收入或利益,衡量比较支出的费用和收到的利益 1.4 参考资料 《软件工程导论》(第6版)清华大学出版社张海藩牟永敏编著 可行性研究的前提 2.1 要求 a、聊天室功能 用户的聊天功能,包括数据输入、修改、删除,并要达到界面美观又好、 使用方便 b、软件的性能 开发该软件应具有的基本要求与功能是实现用户信息数据包括与用户有关 的数据的管理与操作处理,基于MY SQL的数据库的数据管理使该软件有 更优异的性能,软件的基本数据流动为用户数据的输入,用户信息及数据的 输出。 c、输出 用户基本信息和聊天内容 d、输入 用户根据自身需要,发起聊天 e、安全保密方面的要求 设置管理员 2.2 目标

相关文档
最新文档