当前位置:文档之家› 计算机毕业设计85UDP局域网QQ聊天程序设计说明书

计算机毕业设计85UDP局域网QQ聊天程序设计说明书

计算机毕业设计85UDP局域网QQ聊天程序设计说明书
计算机毕业设计85UDP局域网QQ聊天程序设计说明书

摘要

随着网络技术的发展及人们生活的需求,网络聊天已越来越受到人们的青睐。网络聊天已经成为人们工作生活中传递信息、交流感情的重要工具,给人们带来了很大的方便。

本设计开发的是一个局域网QQ聊天软件,运用软件工程的设计流程,使用现在比较普遍和流行的C#语言,采用面向对象的方法,综合运用数据库编程技术、多线程开发技术、网络通讯技术,以Microsoft Visual Studio 2005作为系统前台应用程序开发工具,Microsoft SQL Server 2000作为后台数据库管理系统,在Windows XP平台下进行开发。

本局域网QQ聊天软件采用服务器端/客户端(C/S)模式。客户端采用UDP与服务器连接,客户端之间也是通过UDP互相通讯。服务器端主要用于开启和关闭UDP协议的监听服务,还可以查看局域网内已注册的所有的用户以及他们的在线状态。客户端分为注册窗口、登录窗口、QQ窗体主界面以及聊天界面。服务器端要先开启监听服务,客户端才可以进行登录,然后才可以与其他登录的在线用户进行文本信息的聊天,还可以进行点对点的语音聊天,视频聊天和文件传输,还可以进行拍照和录像等。此外,还对该软件进行了皮肤的加载以及打包成安装源。

该软件运行稳定,界面美观、操作简便。在局域网内部使用该局域网QQ聊天软件,可以方便人与人之间的沟通、交流;可以大大提高企业的工作效率;拉近人与人之间的关系。

关键词:局域网;聊天软件;客户端;服务器端;UDP协议

Abstract

With the development of networking technology and the living demand of people, chatting on network is more and more acceptable by people. Internet chat has become an important tool to transmission of information and exchange of feelings in our life, it brings a great convenience.

The topic of this paper is going to talk about that to develop the local area network QQ chat software. This local area network chat software using the design stream of the software project, using the C# language which is very common and popular, using the object-oriented approach, the technology of the database programming, multi-threading development technology and the network communication technology, makes Microsoft Visual Studio 2005 as the front application design tool, Microsoft SQL Server 2000 are used as the background DBMS( the database management system ), and it was programmed in the Windows XP System.

The local area network QQ chat software uses the server and client (C/S) mechanism. And the client connects the server using UDP, and they communicate each other by UDP. Server-side is mainly used to open and close the UDP protocol monitoring service, and you can also look over all the registered users and their online status whom in the local area network. Client is divided into registration window, the login window, the main QQ form and the chat form. If the client wants to log in, the server monitoring service must first open the listening service, then the client can chat with the others which have already logged, and also can voice chat, video chat and files transfers, and also can take pictures and videos. In addition, the software has been load the beautiful skin and package into the installation source.

This software has an interface aesthetics, stable operation, simple operation. Using QQ software in the LAN internal can help people to communicate with others easily, can greatly improve the efficiency of the enterprises, close relationships between people.

Key Words: Local Area Network; Chat Software; Client; Server-side; UDP protocol

目录

引言 (1)

1系统概述与需求分析 (2)

1.1 系统概述 (2)

1.2 需求分析 (2)

1.2.1功能需求 (3)

1.2.2性能需求 (3)

1.3 可行性分析 (4)

2 系统总体设计 (5)

2.1 相关开发技术的原理性说明 (5)

https://www.doczj.com/doc/2513906104.html, Framework和C# (5)

2.1.2SQL Server 2005 (6)

2.1.3UDP协议简介 (6)

2.1.4Socket简介 (6)

2.2 系统功能结构 (7)

2.3 业务流程图 (8)

2.4 程序运行环境 (8)

3 数据库以及类库的详细设计与实现 (9)

3.1 数据库的创建 (9)

3.1.1数据库分析 (9)

3.1.2数据库创建 (9)

3.1.3数据库概念设计 (9)

3.1.4数据库逻辑结构设计 (9)

3.1.5文件夹组织结构 (10)

3.2 类库的设计 (10)

4 客户端模块的详细设计及实现 (12)

4.1客户端注册模块的设计 (12)

4.1.1客户端注册模块概述 (12)

4.1.2客户端注册模块技术分析 (13)

4.1.3客户端注册模块实现过程 (13)

4.2 客户端登陆模块设计 (14)

4.2.1客户端登陆模块概述 (14)

4.2.2客户端登陆模块技术分析 (14)

4.2.3客户端登陆模块实现过程 (14)

4.3 客户端QQ模块设计 (15)

4.3.1客户端QQ模块概述 (15)

4.3.2客户端QQ模块技术分析 (15)

4.3.3客户端QQ模块实现过程 (16)

4.4 客户端消息发送模块设计 (17)

4.4.1客户端消息发送模块概述 (17)

4.4.2客户端消息发送模块技术分析 (18)

4.4.3客户端消息发送模块实现过程 (18)

5 服务器端模块的详细设计与实现 (23)

5.1 服务器端控制台窗体概述 (23)

5.2 服务器端控制台窗体技术分析 (23)

5.3 服务器端控制台窗体实现过程 (23)

6 系统特色及关键技术 (24)

7 结论 (25)

谢辞 (28)

参考文献 (29)

附录 (30)

引言

在Internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。网络聊天已经成为人们工作生活中传递信息、交流感情的重要工具。网络版的聊天软件种类繁多,如QQ、OICQ、MSN等,给人们带来了很大的方便,也使世界好象一下子缩小了,不管在哪里,只要能上网,打开这些软件,就可以给朋友发信息,不管对方是否也同时在线,只要知道对方的号码。但是这些聊天软件也存在以下不足:用户必须连接Internet;用户在工作时容易沉迷于网络聊天。为了方便单位企业内部的信息交流,减少不必要的财力和人力资源浪费,开发一个局域网聊天软件是非常必要的。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。计算机应用技术在日益的普及,网络也遍及到生活的每个角落,很好的利用这些资源,将为人们的工作和学习,带来极大的方便和提高工作效率。

现在,企业、机关、学校都建立起了自己的局域网,在局域网,虽然可以通过文件共享的方式进行通讯,但单单使用这种方式,是非常不方便的,首先,在局域网里的网上邻居里,只能看到机器名,不清楚对方是谁,也不知道对方机器里有什么资源可以共享,而且,当局域网的机器很多时,这种方式更加麻烦。于是,就想到做一个在局域网里的聊天软件,在局域网里,可以通过它,实现在局域网里方便的联络,进行文件传输,消息的发布,还可以语音、视频等。所以,开发一个局域网里的基于C/S模式的QQ聊天软件,是十分必要。

在学校建立起校园网里,局域网聊天系统可以起到方便同学之间,教师之间,师生之间的相互联络,这样,不用上Internet,可以节省资源,在学校这个大环境里,就可以同学之间联系,联络感情,促进同学之间的友谊,学生可以通过它来与不同寝室的同学,教师讨论问题。并能最大限度地利用现有的网络资源,极大地提高工作效率。为了适应校园网的建设,实现校园网内进行消息发布,学生交流,师生交流,网上作业等功能。

在公司企业建立起的局域网里,应用于局域网内企业(组织)内部成员之间的交流领域,在没有因特网的支持下也可以进行即时通讯,亦因此使之更安全、更高效;同时因为它界面简洁实用,没有娱乐功能,所以简单易用,是企业(组织)成员更加专注于工作,减少不必要的财力和人力资源浪费。

因此,本毕业设计开发了一个局域网的QQ聊天软件。该聊天软件分为服务器端和客户端,采用的是C#语言,在Windows XP系统下,使用的开发工具是Microsoft Visual Studio 2005,运行于.NET平台上,使用SQL Server 2000作为后台的数据库管理。为实现和方便客户端之间的通信,在客户端进行了人性化的界面设计,用户可以进行注册,注册后,凭借用户名和密码就可以登陆到QQ聊天界面,然后就可以与其他的在线用户进

行局域网内部的文本聊天、语音聊天、视频聊天和文件的传输。

1系统概述与需求分析

1.1 系统概述

该局域网QQ聊天软件操作简单方便、界面简洁。该系统分为客户端和服务器端。前台为客户端,包括的主要功能有用户注册、用户登陆、文字聊天、文件传输、语音聊天和视频聊天等功能。后台为服务器端,主要功能包括:数据库的建立、查看用户的状态、管理用户的资料、开启和关闭服务器的监听等功能。服务器端直接与数据库相连,服务器端要先开启监听,然后客户端登陆的时候要与服务器端进行通信,服务器端进行验证客户端的用户名和密码。客户端经过服务器端的验证后,才可以登陆成功。本软件还对客户端的各个窗口进行了皮肤加载,使界面看起来更加的美观、大方。本局域网QQ聊天软件还具有系统托盘和右键菜单的功能。每个客户端只能进行一次并且只需注册一次。用户登录成功之后,可以看到局域网内所有的在线和不在线的的注册用户。用鼠标双击打开某一个在线的用户的聊天窗口,就可以与该用户进行文字信息的互发与接收,可以利用本地的摄像头进行录像和拍照,还可以与对方进行点对点的视频、语音和传输文件等操作。本系统运行比较的稳定、安全可靠。此外,本软件还对源程序进行了打包成安装源,便于用户使用的时候进行安装。安装源也分为客户端和服务器的安装源。一般的局域网用户只需要安装客户端即可。

1.2 需求分析

近年来,随着全球信息化进程的不断发展,网络也在飞速发展。出于高效、快速地处理各种事务的目的,越来越多的企业在其内部使用局域网来进行工作。在内部局域网的帮助下,企业得以简化信息流程,提高信息交换的速度,从而提高工作效率。然而,随着企业规模的不断扩大,业务量的不断增加,企业内部的信息越来越私密,企业只希望员工通过内部局域网进行沟通与交流,避免企业内部机密通过Internet泄露到外部。为了解决上述矛盾,人们提出了开发局域网聊天软件的构想,通过局域网聊天软件,企业员工可以随时的与局域网内部的用户进行即时消息的传递,召开网络会议,进行语音视频和文件的传输等,有利于提高工作消息效率,同时又保护了企业内部信息的安全性。

本局域网QQ聊天软件主要是采用Microsoft Visual Studio 2005结合SQL Sever 2000数据库技术,采用C#语言来实现各功能模块的开发。开发出来的软件必须结构比较的合理、功能比较的齐全、使用起来比较的方便。该局域网QQ聊天软件开发的重点和难点是客户端和服务器端与数据库的连接,建立连接后还要保证通信的畅通性和正确性。此外要实现在两个客户端之间实现点对点的文件传输,语音聊天以及视频等功能,也是本局域网QQ聊天软件开发的难点。此外,还要着重处理好各模块间的划分以及模块间的连接。在开发中应注意系统性能的优化,数据库的安全和优化,尽可能的提高系统的安全性和整个系统的运行的稳定性。同时,开发出来的软件系统还必需功能完备、安全性高、易于维护和使用,操作也要简单、方便,界面也要简洁、美观、大方。

1.2.1功能需求

网络聊天已经成为人们工作生活中传递信息、交流感情的重要工具。网络版的聊天软件种类繁多,如QQ、OICQ、MSN等,实现了随时随地上网聊天,给人们带来了很大的方便。但是这些聊天软件也存在以下不足:用户必须连接Internet;用户在工作时容易沉迷于网络聊天。为了方便单位企业内部的信息交流,减少不必要的财力和人力资源浪费,开发一个局域网聊天软件是非常必要的。

开发该局域网聊天软件需要完成以下的几个要求,以便于用户进行操作。这样才能使该软件易学易用、更加的人性化。

(1) 合理的设计数据库

尽量合理地减少数据库数据的冗余,使重复的数据保持在最小限度,这样将不必要的多占用存储空间,减少产生混乱影响的危险,还能提高计算机的运行速度。

(2) 设计出友好的界面

界面的友好与否是用户评价一个软件优劣的重要方面之一,使用户有一个良好的心情。

另外窗口界面的各个控件布局要合理,美观。要充分的利用Microsoft Visual https://www.doczj.com/doc/2513906104.html, 2005提供的强大的功能。

(3)根据局域网对QQ聊天软件的要求,本QQ聊天软件需要实现以下的目标:

①操作简单方便、界面简洁美观

②每个客户端只能注册一次

③可以在局域网中实现文字的传输

④可以实现多用户的信息通信

⑤可以实现两个用户之间的点对点的语音聊天

⑥可以实现两个用户之间的点对点的视频聊天

⑦可以使用本地的摄像头的进行录像和拍照

⑧可以实现两个用户之间点对点的文件的传输和接收

⑨系统运行要比较的稳定、安全可靠

1.2.2性能需求

(1)可靠性高,能在由于系统问题或其它原因产生错误后,作出相对应处理,比如网络初始化失败、服务器未启动等,可以提示用户安全退出本程序,在出现不可知的错误以后,可以尽量安全的退出程序。在程序的设计过程中,要求能尽可能多的设想到用户使用过程中可能发生的事件,并能在判断事件后做出相应的处理,使程序具有较高的容错性能。

(2)易操作性,程序简单易懂,容易上手使用。设计界面是,简化界面的复杂性,模拟QQ等现有即时通讯工具的界面,使用户能很容易看懂并使用。

(3)模块化设计此软件的功能,不同的模块实现不同的功能,使得软件易于以后

的维护与扩展,在以后可以更好的完善本软件的功能,更方便于在工作中的应用。

1.3 可行性分析

可行性研究的目的就是要用最小的代价在尽可能短的时间内确定问题是否能够解决。可行性研究可以在较高的层次以比较抽象的方式讨论系统的分析和设计。本局域网QQ聊天软件的可行性研究主要从技术可行性、经济可行性、开发可行性和现有的条件四个方面来进行讨论。

(1)技术可行性

随着国内软件开发的日益发展壮大,各种中小企事业单位和学校等部门已具备独立开发各种类型的应用软件的能力,能够满足不同行业的特别的需求。而本局域网QQ聊天软件其在组织关系上并不存在着很大的复杂性,繁琐性,从整个系统的技术构成上来看,它是属于一个与数据库应用有关的软件,使用的是UDP协议。只要对C#语言比较的熟悉,对UDP协议以及Microsoft的API函数相对比较了解的话,开发出这样的一个系统,并不存在很大的困难。

(2)经济可行性

对于整个系统而言,并不需要花费太多的经费。只要一两个人或者一个小团队,即可以完成系统的开发。

(3)开发可行性

本局域网QQ聊天软件采用的是Microsoft Visual https://www.doczj.com/doc/2513906104.html, 2005作为开发工具, 利用SQL Server 2000对数据库表进行存储,提供数据之间的操作。首先Microsoft Visual https://www.doczj.com/doc/2513906104.html, 2005是一个开放的协作式系统,可以连接许多比较常用的数据库。其次它具有可视化的开发环境,使代码的编写比较的直观,并且在可视化环境下的调试和维护也相对比较容易。再次Microsoft Visual https://www.doczj.com/doc/2513906104.html, 2005提供了大量的控件,这既丰富了应用程序的表达能力,也加快了项目的开发速度。

(4)现有设备及实验条件:

①计算机:

Genuine Intel(R) CPU 2140 @1.60GHz

1G内存,160G硬盘

②系统:

Microsoft Windows XP Professional 版本2002 Service Pack 3

③软件:

Microsoft Visual Studio 2005

Microsoft SQL Server 2000

以上的设备,对于开发出一个功能比较完备,性能比较完善的局域网QQ聊天软件,已经足够了。

2 系统总体设计

2.1 相关开发技术的原理性说明

https://www.doczj.com/doc/2513906104.html, Framework和C#

本局域网QQ聊天软件的开发采用的是C/S结构,基于.NET开发环境下,使用C#语言进行开发。C#是一种精确、简单、类型安全、面向对象的语言,是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相.C#是微软公司研究员Anders Hejlsberg的最新成果.C#看起来与java有着惊人的相似;它包括了诸如单一继承,接口,与Java几乎同样的语法,和编译成中间代码再运行的过程.但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET windows网络框架的主角。

C#的特点:

(1)完全面向对象。

(2)支持分布式,处理过程可以分布在客户机和服务器上。C#能很好的解决分布式问题。

(3)跟Java类似,C#代码经过编译后,成为了一种IL(中间语言)。在运行时,再把IL编译为平台专用的代码。

(4)健壮,C#在检查程序错误和编译与运行时错误一点也不逊于Java,C#也用了自动管理内存机制。

(5)C#不像Java那样完全摒弃了指针和手动内存管理。C#默认情况下是不能使用指针的,程序员在有必要时可以打开指针来使用。这样可以保证编程的灵活性。

(6)安全性:C#的安全性是有.net平台来提供的。C#代码编译后成为IL语言。是一种受控代码,.net提供类型安全检查等机制保证代码是安全的。

(7)可移植性:由于C#使用类似Java的中间语言机制。使得C#也跟Java类似,可以很方便的移植到其他系统。在运行时,再把中间代码编译为适合特定机器的代码。

(8)解释性:C#也是一种特殊的解释性语言。

(9)高性能:C#把代码编译成中间语言后,可以高效的执行程序。

(10)多线程:与Java类似,可以由一个主进程分出多个执行小任务的多线程。

(11)组件模式:C#很适合组件开发。各个组件可以由其他语言实现的,然后集成在.net中。

.NET Framework类似于Java虚拟机,它不但使Internet上运行的应用程序更容易被开发,而且也可用于开发运行于Windows桌面上的传统业务应用程序。它为创建、部署以及管理安全、强大、高效的应用程序提供了前所未有的最大支持。.NET Framework 是一个创建、部署和运行应用程序的多语言平台环境,.NET支持的语言使用的基类库由.NET Framework类库(FCL)提供。C#是Microsoft公司设计的一种编程语言。它松

散地基于C/C++,并且有很多方面和Java类似。Microsoft是这样描述C#的:C#是从C 和C++派生来的一种简单、现代、面向对象和类型安全的编程语言。C#主要是从C/C++编程语言家族移植过来的,C和C++的程序员会马上熟悉它。

2.1.2SQL Server 2005

SQL Server 数据平台SQL Server 是一个全面的、集成的、端到端的数据解决方案,它为企业中的用户提供了一个安全、可靠和高效的平台用于企业数据管理和商业智能应用。SQL Server 2005 为IT专家和信息共作者带来了强大的、熟悉的工具,同时减少了在从移动设备到企业数据系统的多平台上创建、部署、管理及使用企业数据和分析应用程序的复杂度。通过全面的功能集、和现有系统的集成性、以及对日常任务的自动化管理能力,SQL Server 2005 为不同规模的企业提供了一个完整的数据解决方案。

2.1.3UDP协议简介

本局域网QQ聊天软件使用的是UDP协议。用户数据报协议(User Datagram Protocol)是OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。是一个简单的面向数据报的传输层协议,IETF RFC 768是UDP的正式规范。UDP 协议基本上是IP 协议与上层协议的接口。UDP 协议适用端口分别运行在同一台设备上的多个应用程序。

与TCP 不同,UDP 并不提供对IP 协议的可靠机制、流控制以及错误恢复功能等。由于UDP 比较简单,UDP 头包含很少的字节,比TCP负载消耗少。

UDP适用于不需要TCP可靠机制的情形,比如,当高层协议或应用程序提供错误和流控制功能的时候。UDP是传输层协议,服务于很多知名应用层协议,包括网络文件系统(NFS)、简单网络管理协议(SNMP)、域名系统(DNS)以及简单文件传输系统(TFTP)、动态主机配置协议(DHCP)、路由信息协议(RIP)和某些影音串流服务等等。

2.1.4Socket简介

选定Windows XP平台开发网络通信程序,可以选择Windows的Sockets编程接口,Windows Sockets是一套开放的、支持多种协议的Windows下的网络编程接口。现在的Winsock已经基本上实现了与协议无关,可以使用Winsock来调用多种协议的功能,但较常使用的是TCP/IP协议。Windows sockets无疑是进行网络编程的利器。所有的Windows Sockets实现都支持流套接口和数据报套接口。应用程序调用Windows Sockets 的API实现相互之间的通讯。Windows Sockets又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。

Socket,简称套接字,用于实现网络上客户和服务器之间的连接。也就是说网络上两个或两个以上双工方式通信的进程之间总有一个连接,这个连接的端点成为套接字,套接字是在比较低的层次上通信的。

具体的说:一个服务器应用程序一般侦听一个特定的端口等待客户端的连接请求,当一个连接请求到达时,客户端和服武器端建立一个通信连接,在连接过程中,客户端

被分配一个本地端口与一个Socket建立连接,客户端通过写Socket来通知服务器,以读取Socket中的信息,类似的服务器也获得一个本地端口,它需要一个新的端口号来侦听原始端口上的其他连接请求。服务器也通过它的本地端口连接一个Socket,通过读写和客户端通信。

一般的Socket网络编程的函数调用步骤如下:

(1)创建套接字

应用程序在使用套接字前,首先必须创建一个套接字,以便系统分配相应的资源给它。

(2)指定本地地址

当一个套接字被创建后,存在一个名字空间(地址族),但它没有被命名。需要将套接字地址(包括本地主机地址和本地端口地址)与所创建的套接字号联系起来,即将名字赋予套接字,以指定本地相关。

(3)建立套接字连接

即开启监听功能。监听远程客户端的请求。

(4)数据传输

当一个连接建立以后,就可以进行数据传输了。分为数据的发送和接收。

(5)关闭套接字连接

也就是关闭监听,并释放分配给该套接字的资源。

2.2 系统功能结构

根据局域网QQ聊天软件的特点,可以将其分为客户端和服务器端两个部分进行设计。客户端主要用于用户的注册、登陆和信息的发送、语音、视频和文件的传输等;服务器端主要用于记录用户注册的用户名、密码、IP地址、端口号以及用户在线的状态等信息,并作为客户端向远程客户端发送信息的一个中转站。

UDP局域网聊天程序客户端与服务器端的功能结构图如图2-1所示:

图2-1局域网QQ聊天程序功能结构图

2.3 业务流程图

UDP局域网聊天程序是由客户端和服务器端组合而成的,业务流程图如图2-2所示。

客户端登陆的时候,先判断用户是否已经进行过了注册。如果用户已经注册后,则直接进入到登陆窗口。如果用户没有注册过,则跳转到注册窗口,让用户先进行注册。用户注册需要填写服务器IP地址、端口号、用户名和密码等信息。注册完成后,客户端与远程服务器取得通信,将注册的信息发送到远程的服务器端进行注册保存。客户端在本地将生成一个Server.ini文件,该文件主要是记录服务器的IP地址和端口号以及注册用户的用户名。当用户下一次登陆的时候就是通过读取Server.ini文件,来取得服务器的IP地址和端口号,然后再根据该IP地址和端口号与服务器建立通信。注册完成后,然后就会跳转到登陆窗口。用户只要输入正确的用户名和密码,就可以登陆成功。就可以与服务器端建立通信。登陆之后,就进入到了QQ界面。双击某一个在线的用户,就可以与该用户进行聊天、语音、视频和文本的传输。

图2-2 局域网QQ聊天软件业务流程图

2.4 程序运行环境

本局域网QQ聊天软件运行的环境具体如下:

(1)系统开发平台:Microsoft Visual Studio 2005

(2)系统开发语言:C#

(3)数据库管理系统软件:Microsoft SQL Server 2000

(4)运行平台:Windows XP

(5)运行环境:https://www.doczj.com/doc/2513906104.html, Framework SDK v2.0

3 数据库以及类库的详细设计与实现

3.1 数据库的创建

在开发应用程序时,对数据库的操作是必不可少的,数据库设计是根据程序的需求及其实现功能所制定的。

3.1.1数据库分析

本局域网QQ聊天软件后台数据库主要是用于记录注册人员的编号、用户名、密码、IP地址、端口号和在线和离线的状态等信息。使用Microsoft SQL Server 2000 作为后台数据库。数据库命名为db_MyQQData,其中包含了一张数据表db_CurrencyUser,用于存储当前已注册的用户的基本信息。

3.1.2数据库创建

数据库db_MyQQData的具体创建步骤如下:

(1)选择“开始/所有程序/Microsoft SQL Server/企业管理器”命令,打开SQL Server Enterprise Manager 数据库窗体。

(2)在SQL Server Enterprise Manager 数据库窗体的(local)(Windows NT)中,用鼠标右键单击“数据库”文件,在弹出的快捷菜单中选择“新建数据库”命令,打开“数据库属性”对话框,在该对话框的“名称”文本框中输入要创建的数据库名称“db_MyQQData”,单击“确定”按钮创建数据库。

3.1.3数据库概念设计

在QQ用户登陆时,为了可以在服务器端返回所有注册用户的信息,可以在服务器端的数据库中创建一个用户注册表,用于记录注册用户的IP地址、端口号、在线状态、用户名和密码等基本信息。用户注册表的实体E-R图如图3-1所示。

图3-1 用户注册表的实体E-R图

3.1.4数据库逻辑结构设计

根据上面设计好的E-R图,可以在数据库中创建相应的数据表,此外根据注册用户

的实体E-R图来创建数据表。

数据库创建完成后,在db_MyQQData数据库的下拉节点的“表”节点上单击鼠标右键,在弹出的快捷菜单中选择“新建表”命令,将在SQL Server Enterprise Manager 数据库窗体中弹出“新表”对话框。

在“新表”对话框的“列名”中输入ID、IP、Port、Name、PassWord和Sign字段,将其数据类型分别设置为int、varchar(20)、int、varchar(20)、varchar(20)和int,并将ID字段设为主键和自动编号,然后在各“列”的“描述”文本框中对应字段进行中文解释。

字段名称和数据类型设置完成后,单击保存按钮,弹出“选择名称”窗口,在该窗口中输入创建数据表的名称db_CurrencyUser,单击“确定”按钮,就完成了对本局域网QQ聊天软件后台数据库的创建。

3.1.5文件夹组织结构

在本系统中创建了五个解决方案和一个类库,分别是客户端解决方案、表情方案、语音和文件传输方案以及服务器端解决方案,还有一个名为QQClass的类库。为了便于对它们进行操作,将客户端解决方案和类库添加到了服务器端解的决方案中。文件夹组织结构图如图3-2所示。MyQQClient解决方案主要是用于客户端各个窗口的开发,MyQQServer解决方案主要是用于服务器端后台的用户信息管理平台界面的开发,QQClass类库主要是对UDP协议进行封装,还有定义其他一些类。ImageListPopupDemo 解决方案主要是用于实现QQ表情的发送的,MatureV oice解决方案主要是用于实现语音的,UdpSendFile解决方案主要是用于实现文件的传输功能的。

图3-2 文件夹组织结构图

3.2 类库的设计

在本局域网QQ聊天软件中,因为在后台服务器端的用户信息管理平台以及前台的客户端的注册窗口、登录窗口、QQ界面窗口以及聊天窗口都需要用到UDP协议。所以本程序中,将UDP协议封装成了一个控件,主要是为了便于客户端和服务器端的调用,并且将UDP控件和自定义类存储在了QQClass类库中。当需要使用到UDP协议的时候,只需要在相应的窗口中加入UDPSocket控件,然后设置UDPSocket控件的相关的属性即可。下面对QQClass类库中的UDPSocket控件和其他的类分别进行说明。

(1)UDPSocket控件

该控件主要是将UDP协议中的IP地址和端口号以及开启或者关闭的状态以控件的形式进行设置,并自定义一个了DataArrival事件,用于对主机的端口号进行监听,以获取远程计算机发送过来的消息。

在自定义控件上制作了localHost、localPort、active属性,以及DataArrival事件。localHost用于设置服务器端的IP地址;localPort属性用于设置端口号;active属性是一个Bool型,可以控制端口号是否处于监听状态。

UDPSocket控件中包含了方法OpenSocket和CloseSocket()方法分别用于打开和关闭UDP协议端口的监听功能,并在监听关闭的同时关闭用于接收信息的子线程。

Listener()方法用于实现主机端口号的监听功能,主要是将IP地址和端口号以网络端点进行存储,然后创建一个新的端口号,再设置接收缓冲区和发送缓冲区的大小。此外,还创建了一个线程,主要是用于获取当前接收到的信息,就是将获取的远程信息转换成二进制流。在线程打开时,将GetUDPData()方法所接收的信息传递给线程的委托。

GetUDPData()方法是在获取远程消息时,将消息转发给UDPSocket控件的DataArrival事件,可以通过该事件将消息发送给远程客户端。

Send()方法用于将主机获取的消息,通过IP地址和端口号发送给远程客户端。

通过以上的方法,便制作完成了一个UDPSocket控件。如图3-3所示:

图3-3 UDP控件属性图

(2)Publec_Class类

该类用于记录服务器端和客户端的基本信息,并通过自定义的方法MyHostIP()获取服务器端的所有IP地址,通过自定义方法Get_Windows()获取Windows目录。

(3)ClassForms类

该类将获取的的窗体在InnerList列表中进行添加和移除操作,在列表中查找相应的窗体。

(4)ClassMsg类

该类主要是用枚举型的元素指定消息发送的命令、消息类型、消息发送的状态等。其中,发送的消息命令包括了用户的注册、用户注册结束、用户登录、用户登录结束上线、用户列表、打开视频、关闭视频、下线等命令;发送的消息类型包括了无类型、发送命令、发送消息、发送文件等。此外,该类还用来记录发送方和接收方的发送编号、IP地址以及端口号等信息,还记录了用户注册的用户名和密码等信息。

(5)ClassOptionData 类

该类将服务器端对数据库的操作进行了封装,通过对该类中各方法的调用,可以对数据表进行添加、修改及读取的操作。下面对各方法进行一下简要的说明。

①ExSQL()方法

该方法通过ConStr参数所传递的SQL语句,对指定的数据表进行查询,并将记录的个数进行返回。

②ExSQLReDr()方法

该方法通过ConStr参数所传递的SQL语句,对指定数据进行查询,并将查找到的数据信息以SqlDataReader对象进行返回。

(6)ClassSerializers 类

①SerializeBinary()方法

该方法是在客户端发送信息时,将发送的对象序列化为二进制流,并返回序列化的二进制流,因为Socket只能以二进制流的形式进行传输。

②DeSerializeBinary()方法

该方法是在客户端接收信息时,将二进制流反序列化为对象,并返回反序列化后的对象,这样,便于在指定的控件上显示接收的信息。

(7)ClassUserInfo类

该类用于记录当前QQ用户的编号、IP地址、端口号、用户名称和用户状态。

(8)ClassUsers 类

该类主要是将服务器端所有注册的用户信息存储到base类的InnerList列表中。这样,当用户注册或登陆时,可以将该列表中的信息发给当前在线的所有用户,以改变QQ窗体的显示情况。

(9)Video 类

该类主要是一个API的视频类。主要是通过调用API的视频类的函数,来打开摄像头,进行数据的读取。打开摄像头之后,还可以在本地进行拍照以及录像等功能。

4 客户端模块的详细设计及实现

4.1客户端注册模块的设计

4.1.1客户端注册模块概述

注册模块主要是在客户端用户第一次使用UDP局域网聊天程序的时候,对当前用户进行注册,并将注册的信息发送给服务器端进行记录。当注册成功后,就将返回的服

务器端的ID、端口号和姓名等信息写入名为Server.ini文件中,保存在本地的系统目录中。主要是为了方便下次登录的时候判断用户是否进行了注册。如果用户注册了,在登录的时候就读取本地的Server.ini文件,获得服务器端的ip地址和端口号。客户端就可以根据获得的服务器端的IP地址和端口号,与服务器建立通信。客户端通过服务器端的验证后即可登录成功。注册窗体运行结果如图4-1所示。

图4-1 客户端注册窗体

4.1.2客户端注册模块技术分析

在注册模块中应用了INI文件,以及获取Windows路径的技术,它们都是利用API 函数实现的,所以应在命名空间中添加using System.Runtime.InteropServices命名空间。下面对其进行详细介绍。

(1)INI文件

①创建INI文件

创建INI文件主要应用了API函数WritePrivateProfileString(),在应用API函数前,首先要对其进行声明。

②读取INI文件

读取INI文件主要应用了API函数Getprivateprofilestring(),在应用API函数前,首先要对其进行声明。

(2)获取Windows路径

获取Windows路径应用了API函数的GetWindowsDirectory(),在应用API函数前,首先要对其进行声明。

4.1.3客户端注册模块实现过程

(1)、新建一个Windows窗体,命名为F_SerSetup.cs,主要用于实现用户的注册功能,该窗体主要用到了TextBox和UDPSocket1控件。

(2)、在输入完服务器的IP地址和注册用户的用户名和密码等注册信息后,确保

两次输入的密码要一致,然后单击“确定”按钮,将通过自定义控件udpSocket1的Send ()方法,将注册信息以二进制流的形式发送给服务器端进行注册。注册成功后,服务器端将返回一个消息,告诉客户端已经注册成功,然后就可以进入到登陆窗口。

(3)、在自定义控件的DataArrival事件中,利用托管调用DataArrival事件,并在该控件的线程上,用指定的参数对其进行异步托管。

(4)、托管对DataArrival事件进行异步执行,用于获取服务器端所返回的消息,当返回的是注册成功消息时,创建一个INI文件,并写入服务器的IP地址、端口号和用户名称,关闭注册窗体。将INI文件保存在本地的系统目录下。用户在下一次登陆的时候,是要读取该INI文件,取得服务器的IP地址和端口号,然后就可以向服务器发送登陆请求。获得服务器的验证通过后,就可以成功的登陆了。

4.2 客户端登陆模块设计

4.2.1客户端登陆模块概述

登陆模块主要是将用户名和密码发送到服务器端进行验证,当服务器端有该用户时,将返回一个登陆成功的消息,通过该消息,将关闭登陆窗体,进入QQ窗体。登陆窗体运行结果如图4-2所示。

图4-2 客户端登陆窗体

4.2.2客户端登陆模块技术分析

在UDP协议的监听事件中通过开启一个线程,来实现局域网信息的发送和接收。要想创建一个子线程,需要实例化一个Thread类型的对象。子线程创建完后,可以使用线程的Start()方法开启当前线程。当子线程使用完之后,可以使用Thread对象的Sleep(0)方法将主线程睡眠,然后调用线程的trd.Abort()方法终止当前线程。

4.2.3客户端登陆模块实现过程

(1)新建一个Windows窗体,命名为F_Logon.cs,将窗体的FormBorderStyle属性设为None,去掉窗口的边框,使窗口看起来更加的美观大方。该窗体主要实现客户端的登陆功能。该窗体用到的主要控件有PictureBox和TextBox,分别用于显示登陆窗体的背景和输入登陆用户的密码。

(2)在登陆窗体加载时,首先在Windows目录中查找Server.int文件,当该文件不存在时,调用注册窗体;否则,在INI文件中读取服务器的IP地址和端口号。

(3)单击窗体的“登陆”按钮,该按钮通过窗体加载所获取的服务器IP和端口号,将用户名和密码以二进制流的形式发送给服务器端。再根据该IP地址和端口号与服务器建立通信,把用户的用户名和密码发送给服务器进行验证。验证通过后,用户就可以进行登录了。

(4)在自定义控件UDPSocket1的DataArrival事件中,利用托管调用DataArrival 事件,并在该控件的线程上,用指定的参数对其进行异步托管。

(5)托管对DataArrival事件进行异步执行,用于获取服务器端所返回的消息,当返回的是登陆成功消息时,存储服务器端返回的ID值,关闭登陆窗体,进入客户端QQ 窗体。如果验证不通过,就不能进行登录。

4.3 客户端QQ模块设计

4.3.1客户端QQ模块概述

QQ模块主要显示当前已注册的所有用户的名称,并根据用户的在线情况,设置用户名称前的图标样式。QQ窗体运行结果如图4-3所示。

图4-3 客户端QQ窗体

4.3.2客户端QQ模块技术分析

在本窗体中使用InnerList列表记录当前已注册用户的信息,并将InnerList列表中的信息添加到treeview1控件中。treeview1控件上同级节点的连接线已经去掉,这样使各个图标看起来更加的美观。InnerList用于存储项目的ArrayList对象,它是

CollectionBase对象中的一个属性,可以通过该属性的Add()和Remove()方法向列表中添加和移除元素。具有在线和离线的功能。当用户在线时,就设置亮度的图标,当用户离线时,就设置成灰色的图标。当点击离线时,UDP协议将关闭监听。显示的所有的用户都是离线的状态。此时,不能给其他用户发送消息。此外,还具有系统托盘图标的功能,当最小化程序时,程序将缩小为右下角的系统图标。系统托盘图标上还具有右键菜单的功能。另外,当该QQ窗体移动到屏幕顶端时,还可以实现自动隐藏的功能。

4.3.3客户端QQ模块实现过程

(1)新建一个Windows应用程序,将默认创建的Windows窗体命名为F_Clinent.cs,将窗体的FormBorderStyle属性设为FixeDialog,主要用于实现系统的登陆功能。该窗体用到的主要控件有PictureBox和Treeview,主要功能是用于显示QQ窗体的背景图片和将控件的边框设为无。还用到了comboBox1控件,该控件主要是用于设置用户的上线和离线状态。

(2)在QQ窗体加载时,首先要调用登陆窗体,当登陆窗体验证成功后,发送消息给服务器端,返回所有注册的用户信息。然后再根据用户的在线和离线状态,在Treeview上设置用户的图标。

(3)自定义方法GetUserList(),通过udpSocket1的控件的Send()方法将消息发送到服务器端,用于获取服务器端已注册的用户消息。

(4)利用udpSocket1控件的DataArrival事件,对服务器端发送的消息进行监听,以实现客户端与远程客户端的通信功能。当监听到有远程客户端发送消息过来时,就自动在treeView1控件中遍历节点查找消息接收对应的节点,然后就自动打开该聊天窗体,将接收到的信息显示在该窗体上。

(5)GetUserList()方法用于遍历服务器端的所有用户,根据用户的当前状态,以图片的形式在Treeview控件中显示用户的在线状态。

(6)GetMsg()方法用于获取客户端所发送的消息,根据信息容量的大小,以不同的接收方式存储信息,并在接收信息后,遍历窗体列表,当窗体列表中有相应的接收窗体时,将信息添加到窗体的显示控件中;否则,重新调用消息发送窗体,将接收信息显示在该窗体的显示控件上。

(7)自动隐藏的功能主要是使用的timer控件来实现的。就是每毫秒执行一次,获取鼠标在屏幕的坐标点,当鼠标在当前窗体内,并且窗体的TOP属性小于0时,就设置窗体的TOP属性值为0;当窗体的上边框与屏幕的顶端的距离小于5时,就将QQ窗体隐藏到屏幕的顶端。当窗体隐藏之后,将鼠标移动到窗体内的时候,窗体就立刻显示出来。关键的代码如下;

private void timer1_Tick(object sender, EventArgs e)

{

System.Drawing.Point pp=new Point(Cursor.Position.X,Cursor.Position.Y);

局域网内的多功能聊天室的设计与实现

JISHOU UNIVERSITY 专业课课程论文题目:局域网内的多功能聊天室的设计与实现 作者: 学号: 所属学院:信息科学与工程学院 专业年级: 总评分: 完成时间: 吉首大学信息科学与工程学院

局域网内的多功能聊天室的设计与实现 局域网内的多功能聊天室的设计与实现 (吉首大学信息科学与工程学院,湖南吉首 416000) 摘要 在计算机技术飞速发展的今天,随着Internet的普及和发展,人们的生活和工作也越来越离不开信息网络的支持,而聊天室是人们最常见、最直接的网上交流的方式。本论文主要研究一个以网络交友为主,为广大用户提供一个借助网络进行人际交往的信息平台。 本文所设计的局域网聊天系统是基于开放的WEB服务器应用程序开发设计的,其主要特征是能动态完成信息的传递且具有高效的交互性,有效的处理客户请求且具有更简单、更方便的数据库访问方法,易于维护和更新。这种技术程序由JAVA、HTML、数据库和脚本语言组合而成。主要功能模块包括:用户登录、注册部分;编写和显示聊天记录部分;管理员管理聊天室的管理部分。聊天系统编写和显示聊天记录部分界面友好,提供动作、表情、公聊或私聊等操作;管理部分可以删除不守规矩的注册用户、踢出在线用户以及删除某些不合时宜的聊天记录等、根据数据库需求分析,在ACCESS中定义3个表:用user表来存放注册用户信息、用activetable 表来存放当前在线用户信息以及用message表来存放聊天记录。本系统相比较其他信息交流平台具有开发方便、快捷,占用资源少,维护方便等优点。 【关键词】Java,数据库,脚本语言,聊天系

LAN of multi-function chat room design and Implementation Raotao (College of Information Science and Engineering,Jishou University,Jishou,Hunan 416000) Abstract The rapid development of computer technology today, with the popularity and development of Internet, people's work and life has become increasingly inseparable from the support of the information network, and the chat room is one of the most common, the most direct online communication mode.In this thesis, a network of friends, for the vast number of users with a network of have the aid of interpersonal information platform. The design of the LAN chat system is based on an open WEB server application development and design, its main characteristic is to complete the information transmission dynamically with high interactivity, effective customer request and has a more simple, more convenient database accessing method, easy maintenance and update.The technical program by JAVA, HTML, database and script language and combination.The main function modules include: user login, registration section; write and display chat recording part; the administrator manage the chat room management section.Chat system to prepare and display chat interface friendly, with action, expression, the public chat or operation; management can remove the unruly registered user, play online user and delete certain be inopportune or inappropriate chat records, according to the database needs analysis, defined in ACCESS 3: user table table for registered users of information, using activetable table to store the current online user information and the use of message table to store the chat record.This system is compared with other information exchange platform with the development of convenient, fast, less resource occupation, easy maintenance and other advantages. Key words:JA V A; data capture; information analysis ; Winpcap;Jpcap

局域网聊天系统(详细设计)

局域网聊天系统 详 细 设 计 成绩:

目录 1.功能需求 (1) 2.数据库设计 (1) 2.1 基本表设计 (1) 2.1.1 表结构汇总 (1) 2.1.2 T_Users表结构设计 (2) 2.1.3 XXX表结构设计 (2) 2.2 视图设计 (2) 2.2.1 视图汇总 (2) 2.2.2 XXX视图设计 (2) 2.3 存储过程设计 (3) 2.3.1 存储过程汇总 (3) 2.3.2 XXX存储过程代码 (3) 3.服务器端设计及实现 (3) 3.1 启动服务器功能的设计与实现 (3) 3.1.1 界面设计 (3) 3.1.2 流程 (4) 3.1.3 关键代码 (4) 3.2 消息管理功能的设计与实现 (4) 3.2.1 界面设计 (3) 3.2.2 流程 (4) 3.2.3 关键代码 (4) 4.客户端的设计与实现 (5) 4.1 注册模块的设计与实现 (5) 4.1.1 界面设计 (5) 4.1.2 流程图 (6) 4.1.3 关键代码 (6) 4.2 登陆功能的设计与实现 (6) 4.2.1 界面设计 (5) 4.2.2 流程图 (5) 4.2.3 关键代码 (6) 4.3 聊天功能的设计与实现 (7) 4.3.1 界面设计 (8) 4.3.2 流程图 (8) 4.3.3 关键代码 (9) 5.人员及分工 (9)

局域网聊天系统 详细设计1.功能需求 图 1 项目功能结构图2.数据库设计 2.1 基本表设计 2.1.1 表结构汇总 表 1 基本表汇总

2.1.2 T_Users表结构设计 表 2 用户表(T_Users)结构设计 2.1.3 XXX表结构设计 表 3 XXX(xxx)结构设计 2.2 视图设计 2.2.1 视图汇总 2.2.2 XXX视图设计

计算机专业毕业设计说明书外文翻译(中英对照)

Talking about security loopholes Richard S. Kraus reference to the core network security business objective is to protect the sustainability of the system and data security, This two of the main threats come from the worm outbreaks, hacking attacks, denial of service attacks, Trojan horse. Worms, hacker attacks problems and loopholes closely linked to, if there is major security loopholes have emerged, the entire Internet will be faced with a major challenge. While traditional Trojan and little security loopholes, but recently many Trojan are clever use of the IE loophole let you browse the website at unknowingly were on the move. Security loopholes in the definition of a lot, I have here is a popular saying: can be used to stem the "thought" can not do, and are safety-related deficiencies. This shortcoming can be a matter of design, code realization of the problem. Different perspective of security loo phole s In the classification of a specific procedure is safe from the many loopholes in classification. 1. Classification from the user groups: ● Public loopholes in the software category. If the loopholes in Windows, IE loophole, and so on. ● specialized software loophole. If Oracle loopholes, Apach e,

JAVA局域网聊天参考文献

主要参考文献: [1]侯俊杰.深入浅出MFC[M].武汉:华中科技大学出版社,2001. [2]朱福喜,傅建明,唐晓军.Java项目设计与开发范例[M].北京:电子工业出版社,2005. [3]朱福喜,唐晓军.Java程序设计技巧与开发实例[M].北京:人民邮电出版社,2004. [4]洪维恩,何嘉.Java面向对象程序设计[M].北京:中国铁道出版社,2005. [5]刘慧宁.Java程序设计[M].北京:机械工业出版社,2005. [6]殷兆麟.Java网络编程基础[M].北京:清华大学出版社,2004. [7]黄强.WINDOWS网络编程[M].北京:人民邮电出版社,2003. [8]W.Richard Stevens.TCP/IP详解[M].范建华,译.北京:机械工业出版社,2000. [9]Andrew S.Tanenbaum,Vrije Universiteit,Amsterdam,The Netherla.计算机网络[M].4版.潘爱民,译.北京:清华大学出版社,2004. [10]林晓.基于TCP/IP的局域网聊天工具设计[J].福州:福建电脑,2007,(10): 123-124. [11]林锐.软件工程思想[M].西安:西安电子科技大学出版社,2001. [12]耿祥义,张跃平.Java2实用教程[M].2版.北京:清华大学出版社,2006. [13]赵海亮.局域网聊天程序的分析与实现[J].北京:中国科技信息.2004,(22):17-18. [14]马勇.基于UDP多播文件传输方法的研究[J].福州:福建电脑.2009,(2):69-70. [15]黄海芳,宋筱媛.基于UDP组播的局域网聊天设计[J].福州:福建电 脑.2008,(2):121-122.

计算机专业毕业设计题目大全

计算机毕业设计题目大全安卓/Android题目大全: 安卓001个人事务管理系统 安卓002手机订餐系统 安卓003无线点菜 安卓004酒店房间预定系统? 安卓005个人相册管理系统 安卓006计算器 安卓007英语学习 安卓008绘图软件 安卓009医疗健康查询系统 安卓010健身信息管理系统 安卓011课程表 安卓012音乐播放器 安卓013便民自行车管理 安卓014点餐系统SQL版 安卓015二手图书交易系统 安卓016公交查询线路 安卓017订餐管理系统 安卓018校园闲置物品交易平台 安卓019电子书阅读器 安卓020蔬菜水果销售系统 安卓021网上商店系统 安卓022消费导航系统 安卓023GPS移动定位及运行轨迹管理系统 安卓024基于安卓系统的数据传输wifi 安卓025基于蓝牙的手机好友发现系统 安卓026学英语智力游戏 安卓027电子书阅读器(两个版本) 安卓028短信管理 安卓029音乐播放器 安卓030旅游记忆系统

安卓031教师教学信息查询系统 安卓032个人信息管理系统 安卓033基于Android的公路客运售票管理系统安卓034基于Android的英文词典的设计与实现安卓035同学通讯录 安卓036安卓仓库管理系统(单机) 安卓037电子词典的设计与实现 安卓038二维码识别系统的研究与实现 安卓039任务管理器的设计与实现 安卓040手机防火墙 安卓041邮件收发Email 安卓042计算器 安卓043绘图软件设计与实现 安卓044俄罗斯方块系统 安卓045网上商店系统设计与开发 安卓046消费导航系统设计与实现 安卓047记事本 安卓048拼图游戏的设计与实现 安卓049南京旅游 安卓050公交查询线路 安卓051打飞机游戏 安卓052建筑连连看 安卓053扫雷程序 安卓054视频播放器 安卓055多功能日历 安卓056图书借阅系统 安卓057天气预报 安卓058人体健康监测软件 安卓059天气预报 安卓060实习登记系统 安卓061五子棋 安卓062餐厅点餐订餐系统 安卓063心理测试 安卓064手机理财软件 安卓065音频编辑器 安卓066相册图片浏览器 安卓067手机校园信息系统

TCPIP 网络聊天课程设计

《TCP/IP和网络编程》课程设计 题目:网上聊天 姓名 学号 指导教师 二零一零年月日

一、系统功能描述 使用Socket实现网上聊天功能。用户可以通过客户端连接到服务器端并进行网上聊天。当然,聊天时可以启动多个客户端。服务器支持多个主题,进入服务器后可选定主题,启动客户端后,输入服务器的IP地址即可。用户聊天必须处于同一个主题中。 二、系统的模块划分 服务器端: CAboutDlg:生成关于的对话框类 CCChatServerApp:对应用程序进行初始化 CCChatServerDoc、CCChatServerView:一份文档可以有多个相关的视图,当用户在文档上打开一个窗口时,框架创建一个视图并将其与文档连接。 CClientSocket:设置非阻塞,将前台的界面处理和后台的网络通信都整合到消息传递模型。获取输入的用户名,聊天室列表。 CINIFILE:可以读取.修改变量数值,可以设置新的组,新的变量 CMainFrame:创建应用程序主窗口,使之以树菜单保持展开状态 CMyFormView:在程序中应用窗体,可将新窗体插入。 CMyTreeView:将聊天室列表以树形排列,并实现用户发送消息的方法。 CParseMessage:实现信息的传输。 CServerSocket:实现多个客户端的登录。 CSetServerPortDlg:设定连接的端口。 Message:建立一个结构体,设定房间名、用户名、以及发送内容的类型和长度。 客户端: CChatClientApp:实现客户端与服务器端的连接。 ChatClientDoc:从服务器端获取聊天室内房间的名称的文本。 CClientFormView:初始化房间的名称。 CClientLog:显示上次登录的用户名的对话框。 CConnectServerDlg:客户端与服务器端的连接的对话框。 CIniFile:读取当前目录下的ini文件。 CShowMessage:显示其他客户端发送的消息。 CParseMessage:用户登录时的所选择登陆端口,IP,用户名的对话框。 CMyTreeView:客户端上显示的树形列表,以及可实现发送消息头像闪动等。三、调试数据 首先启动服务器端

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

局域网聊天课程设计 摘要 随着互联网的发展,网络聊天工具作为一种交流工具,已经受到网民的青睐。目前,出现了很多功能强大的聊天工具,其中应用比较广泛的有腾讯QQ、MSN-Messager等等。 即时通讯软件,是每一个上网用户都需要的工具,它除了能够让您迅速地在网上找到自己的朋友和伙伴之外,还可以实时交谈和传递信息,截止到目前,全球约有近3亿多人使用即时软件,正因为即时通讯软件拥有数以亿计的用户和增长的市场,所以各个公司都盯上了这个最大的市场,一时间,即时通讯市场硝烟四起。 对等网络(peer-to-peer,简称P2P),应用最初出现时和现在并不相同。事实上可以认为它是若干不同技术以及流行趋势相结合的产物。以下是导致P2P技术发展最重要的趋势:首先,一些新技术与软件工程的结合,形成了一种将工作分散的趋势。P2P计算正是这种分散工作趋势的结果。其次,在企业应用集成等因素的驱动下,过去十年渐渐形成从集中的单机系统转向分布式系统。然而随着互联网的发展,全面的分布式计算也就成为一种迫切需求。 关键词:局域网聊天 P2P java

Abstract With 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

计算机专业毕业设计说明书

计算机专业毕业设计说明书(论文)写作方 法指导 (仅供参考) 毕业设计论文是毕业设计工作的总结和提高,与从事科研开发工作一样,必须有严谨求实的科学态度。毕业设计论文应有一定的学术价值和实用价值,能反映出作者所具有的专业基础知识和分析解决问题的能力。 在毕业设计期间,尽可能多地阅读文献资料是十分重要的,这不仅能防止重复研究,而且可为毕业设计做好技术准备,还可以学习论文的写作方法。一篇优秀的论文对启发思维,掌握论文的写作规范很有帮助。 论文的写作方法多种多样,并没有一个固定的格式,下面仅对论文中几个主要部分的写作方法提出一点参考性意见。 一、前言部分 前言部分也常用“引论”、“概论”、“问题背景”等作为标题,主要介绍论文的选题。 首先阐明选题的背景和选题的意义。选题需强调实际背景,说明在计算机研究中或部门信息化建设、管理现代化等工作中引发该问题的原因,问题出现的环境和条件,解决该问题后能起什么作用等。结合问题背景的阐述,使读者感受到此选题确有实用价值和学术价值,确有研究或开发的必要性。 前言部分常起画龙点睛的作用。选题实际又有新意,意味着研究或开发的方向对头,设计工作有价值。对一篇论文来说,前言写好了,就会吸引读者,使他们对你的选题感兴趣,愿意进一步了解你的工作成果。 二、综述部分 任何一个课题的研究或开发都是有学科基础或技术基础的。综述部分主要阐述选题在相应学科领域中的发展进程和研究方向,特别是近年来的发展趋势和最新成果。通过与中外研究成果的比较和评论,说明自己的选题是符合当前的研究方向并有所进展,或采用了当前的最新技术并有所改进,目的是使读者进一步了解选题的意义。

综述部分能反映出学生多方面的能力。首先,反映学生中外文献的阅读能力。通过查阅文献资料,了解同行的研究水平,在工作中和论文中有效地运用文献,这不仅能避免简单的重复研究,而且也能使研究开发工作有一个高起点。 其次,还能反映出学生综合分析的能力。从大量的文献中找到可以借鉴和参考的内容,这不仅要有一定的专业知识水平,还要有一定的综合能力。对同行研究成果是否能抓住要点,优缺点的评述是否符合实际、恰到好处,这与一个人的分析理解能力关系密切。 值得注意的是,要做好一篇毕业论文,必须阅读一定量(2~3篇)的近期外文资料,这不仅反映自己的外文阅读能力,而且有助于论文的先进性。 三、方案论证 在明确所要解决的问题并完成文献综述后,很自然地就要提出自己解决问题的思路和方案。在写作方法上,一是要通过比较显示自己方案的价值,二是让读者了解方案的创新之处或有新意的思路、算法和关键技术。 在与文献资料中的方案进行比较时,首先要阐述自己的设计方案,说明为什么要选择或设计这样的方案,前面评述的优点在此方案中如何体现,不足之处又是如何得到克服,最后完成的工作能达到什么样的性能和水平,有什么创新之处(或有新意)。如果自己的题目是总方案的一部分,要明确说明自己承担的部分,及对整个任务的贡献。 四、论文主体 前面三个部分的篇幅大约占论文的三分之一,主体部分要占三分之二左右。在这部分中,要将整个研究开发工作的内容,包括理论分析、总体设计、模块划分、实现方法等进行详细论述。 主体部分的写法,视选题的不同可以多样化,研究型论文和技术开发型论文的写法就有明显的不同。

计算机专业毕业设计

计算机专业毕业设计 Prepared on 22 November 2020

第一章前言 随着计算机的不断普及,社会上的各行各业都开始由计算机主宰着,不论是政府、企业、教育等各个单位的各个部门都有计算机来完成各种各样的工作,所以计算机知识的普及,计算机技术的广泛应用是势在必然的趋势,各个大中型企业、公司都会订阅一些关于本单位的杂导和期刊,这就会给杂志社带来很大的工作量,为使期操作更加简单、快捷我计划设计开发本系统——报刊杂志订阅系统。 学习计算机知识的目的在于更加准确、快捷的解决现实生活中的各种问题。我们只有不断的更新和完善自己的知识、在实践中积累经验,才能做出好的软件为社会服务,为使用者提供便利我以这个标准要求自己应用JSP平台+ACCESS;用到的主要技术:HTML、CSS、B/S,逐步实现杂志订阅管理和公司信息管理的全部功能。 一、报刊杂志订阅系统的简介 本系统是一个基于JAVA平台技术的B/S结构的管理信息系统,主要作用是帮助杂志社完成杂志社管理和公司信息管理。所以整个系统分为两个主要功能模块:杂志订阅管理模块和公司信息管理模块。开发环境:JAVA平台 +Access+JSP;用到的主要技术:JSP。其中杂志订阅管理模块侧重点是维护公司订阅杂志的信息,强调的是哪些公司在什么时期订阅了什么杂志;公司管理模块侧重点是维护所有公司的一些基本信息和数据信息。本系统具有良好的可维护性和可伸缩性,并具有较高的稳定性。 二、报刊杂志订阅系统的用户需求 (一) 总体功能需求

报刊杂志订阅系统是针对杂志社的大量处理工作用计算机进行全面现代化管理。系统开发的总任务是实现杂志社各种信息的系统化、规范化和自动化。系统功能分析是在系统开发的总体任务的基础上完成的。本系统主要完成的功能包括杂志订阅模块,公司管理模块,公司数据模块三个主要模块及一些辅助模块。以实现用户方便的输入、查询、统计相关报表的业务需求。 (二) 系统具体功能描述 1.杂志订阅模块 完成杂志订阅信息的添加、删除、修改、批量修改、查询、数据导出、数据统计。杂志订阅信息应该包括:订阅人姓名、职位、公司名称、地址、地区、邮编、电子邮件、电话、订阅起始日期、付款日期、结束日期、份数、落款、来源、支付方法、发票号、客户类别、业务员、订阅形式、订阅期数、付款金额共20项信息。 2.公司管理信息模块 完成公司信息的添加、删除、修改、查询、数据导出。公司基本信息包括:公司名称、联系人、电话、联系人职位、所在行业、所在地区、所在县级地区、公司地址、电子邮件。 3.公司数据信息模块 完成公司信息的添加、删除、修改、查询、数据导出。公司数据信息包括:公司名称、某年的员工人数、资产总额、销售收入、年利润。 4.统计功能模块 统计功能主要完成三方面的统计:统计订阅了杂志的公司中哪些已经付款,哪些还没有付款;订阅份数排名统计;业务员业务量的统计;统计某年到某年所有符合查询条件的公司数据信息的统计。 5.用户管理模块 根据用户的身份为不同的用户提供不同的权限,以便限制用户的操作,保护数据的安全。具体功能有:添加用户、删除用户、修改用户权限等。

网络编程聊天程序课程设计

课题名称:TCP/IP协议及网络编程技术课程设计子课题:实现简化功能的客户机和服务器聊天程序 院(系):计算机学院 专业:通信工程 班级: 学生姓名:hshengxue 学号:200900402022 指导教师:周坚和 2012年 6 月22 日

目录 摘要 (3) 引言 (3) 一、课程设计的目的和意义 (3) 二、课程设计的内容和要求 (3) 三、课程设计所需了解的相关内容和技术 (4) (一)、套接口 (4) (1)套接口的概念 (4) (2)套接口的分类 (5) (3) Socket工作模式 (6) (二)、所用的关键技术 (6) (三)Winsock API的使用 (7) 四、课程设计过程 (7) (一)设计思路 (7) (1)服务器的主要工作流程 (7) (2)客户机的工作流程.............................................8. (3)服务器的工作流程 (8) 五、编程实现 (9) (一)服务器端的实现 (9) (二)客户端的实现 (11) 六、小结 (15) 七、参考文献 (16)

摘要: 网络应用程序是通过网络使用通信协议实现进程间的通信;本项目采用软件工程的方法,综合运用网络程序设计,以visual c++6.0作为系统前台应用程序开发工具。此局域网聊天工具采用客户端/服务端(C/S)模式和UDP连接。它由两个程序组成:服务器(Server)和客户端(Client),首先需要登录服务器,再登录客户端,需要指定服务器IP地址以便与服务器建立连接。登录后,客户可以在自己的界面上与另一指的定的客户端进行聊天。服务器模块主要用来维护网络用户用户的信息,包括用户IP地址,聊天内容;聊天客户端模块主要包括用户连接,发送信息,接收信息。是一套用于Internet网络使用的网络聊天工具,其操作简单,灵活性好,运用也比较稳定。 关键词:网络,聊天程序,客户端/服务端,UDP传输控制协议。 0、引言 网络应用程序是通过网络使用通信协议实现进程间的通信,UDP 是TCP/IP协议族为传输层设计的两个协议之一,UDP提供的是无连接、不可靠的网络传输协议,在进行网络应用程序设计时,TCP/IP 协议的核心内容被封装在操作系统中。网络应用程序要使用UDP协议来实现自己的功能,只能通过由系统提供给用户的UDP协议编程接口来实现。因此,可以说设计网络应用程序就是利用网络编程接口(API)进行程序设计的过程。在Windows环境下的网络应用程序编程接口叫

易语言简单局域网聊天代码(客户服务器组件编写)

客户机代码:. 版本2 .支持库shell .支持库xplib .程序集窗口程序集1 .程序集变量文件号1, 整数型 .程序集变量文件长度, 整数型 .程序集变量发送内容, 字节集 .程序集变量文件名, 文本型 .程序集变量文件号2, 整数型 .子程序_按钮1_被单击 .局部变量现在时间, 文本型 .如果(编辑框7.内容=“1”)

.如果(编辑框6.内容≠“”) .如果(编辑框2.内容≠“”) 客户1.发送数据(“聊天”+编辑框2.内容) 现在时间=到文本(取年份(取现行时间())) +“/”+到文本(取月份(取现行时间())) +“/”+到文本(取日(取现行时间())) +“/”+到文本(取小时(取现行时间())) +“:”+到文本(取分钟(取现行时间())) +“:”+到文本(取秒(取现行时间())) 编辑框1.内容=编辑框1.内容+“【本机】”+现在时间+#换行符+“”+编辑框2.内容+#换行符 编辑框2.内容=“” .否则 信息框(“发送消息不能为空”, 48, “提示”) .如果结束 .否则 信息框(“服务器IP地址不能为空”, 48, “提示”) .如果结束 .否则 信息框(“服务器未连接”, 48, “提示”) .如果结束 .子程序_按钮2_被单击 .如果(编辑框6.内容≠“”) .如果(编辑框8.内容≠“”) .如果(客户1.连接(编辑框6.内容, 1991) =真) 播放MP3 (1, “xlj.mp3”) 编辑框1.内容=编辑框1.内容+“连接:”+编辑框6.内容+“成功”+#换行符 按钮2.禁止=真 编辑框7.内容=“1” 客户1.发送数据(“昵称”+编辑框8.内容) .否则 播放MP3 (1, “lk.mp3”) 编辑框1.内容=编辑框1.内容+“连接:”+编辑框6.内容+“失败”+#换行符.如果结束 .否则 信息框(“请填写你的昵称”, 48, “提示”) .如果结束

网络课程设计实验报告--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)// 验证用户名

局域网聊天程序的实现

分类号:TP311.1 U D C:D10621-032-(2007)6165-0 密级:公开编号:2003032147 成都信息工程学院 学位论文 局域网的聊天程序的实现 论文作者姓名:吴剑辉 申请学位专业:网络工程 申请学位类别:工学学士 指导教师姓名(职称):王海春(教授) 论文提交日期:2007年06月10日

局域网的聊天程序的实现 摘要 网络通讯是目前计算机用户进行交流最普遍的方式,各种各样的聊天软件也层出不穷;服务提供商也提供了越来越丰富的通讯服务功能。本文介绍了在Windows环境下开发局域网聊天程序思路和方法。系统使用流行的Delphi7.0开发软件,采用Socket技术实现网络通讯。数据库使用Delphi自带的Database desktop。系统采用典型的C/S(服务器/客户端)构架。系统主要实现了用户注册、登录、聊天、服务器管理等功能。本系统从需求分析、系统的设计、具体功能的实现都严格遵循了软件设计工程的思想。 关键词: Socket; TCP/IP; C/S

The Implementation of LAN Chatting Program Abstract Network is the most popular way of communication between computer users, therefore a lot of chatting softwares come out; on the other hand, more communication services are provided by the ISP. This paper introduces the ideas and methods of LAN chatting program which are developed on Windows. This system is developed by the Delphi7.0 software, and uses the Socket technology to implement network communications. Database using its own database desktop. Software is based on C/S architecture. The system mainly implements the functions of user registration, login, chatting, server management etc.From requirement analysis, outline design, detailed design to coding, function test, the implementation of the function in this essay absolutely follow the process of the software development. Key words:Socket; TCP/IP; C/S

软件工程毕业设计说明书内容

1 引言 1.1 课题的提出 近年来随着计算机科学技术的高速发展,计算机技术也被广泛应用在我们生活的诸多领域,当然它在高校的信息化进程中也发挥着重要作用。通过先进的计算机网络技术管理高校资源,不仅提高了工作效率,而且提高了管理水平,更提高了服务质量[1]。 高校校友是一个知识体系密集、信息资源丰富、社会能力强的群体,是对自身母校有着特殊感情的群体,是潜藏在母校之外的独有的重要宝贵资源,它以桥梁和纽带的角色有效建立起学校和社会之间的联系,在学校的发展过程中发挥着重要的作用[2,3]。 1.2 课题的现状及其发展 目前世界上各种形式的校友录网站大约28万多个之多,大致有以下几类:1)以收费方式分,有收费校友录和免费校友录,其中以后者居多;2)以提供校友录服务的网站分大致有三种,有大专院校自己网站的校友录;有专门单独的校友录网站;有综合网站上的校友录;3)还有网络校友录和手机校友录之分[4]。 中国校友录发展现状:下面选取两个具有代表性的校友录来看看中国校友录网站发展的具体情况。1)中国人校友录是目前各种校友录中最具代表性、权威性的校友录。它有完善的界面服务,在校友录基本的留言、相册等功能之上,中国校友录还开通了手机校友录,同学大搜捕,星级会员等增值服务。还包括了其他信息服务内容,可以进行天气预报,股市,热点新闻的信息定制,并针对毕业班同学为他们提供全面就业信息及咨询。2)世纪同学录,现有注册用户440914人,注册班级120864个(数据截止到2004年1月10日)[5]。 1.3 本课题的主要工作 本次课题设计的是中北大学校友录管理系统,主要工作任务是实现以下系统功能:校友成员注册、登录、留言,上传并浏览照片、通讯录、系统后台管理。具体实现:校友数据的添加、修改、删除、和查询,已完成校友数据的收集及进行数据电子化;用户之间的互动,包括上传照片,相互留言,查看信息;对中北大学校友录管理系统的用户权限进行管理,以保证数据资源的合理利用。通过提供完善的校

JAVA课程设计--简单的网络聊天程序

本科课程设计课程设计题目:简单的网络聊天程序

课程设计报告1.设计目的:

序言 1.1 背景 在当今的信息时代,越来越多的聊天工具被应用,Java语言是当今流行的网络编程语言,它具有面向对象、与平台无关、安全、多线程等特点。使用Java语言不仅可以实现大型企业级的分布式应用系统,还能够为小型的、嵌入式设备进行应用程序的开发。面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。为了进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,锻炼我们熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了Java程序设计课程设计。 此次课程设计的题目为简单的聊天室,通过做巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、JCreator等开发工具的运用,拓宽常用类库的应用。使我们通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。 1.2 相关技术 CPU:Pentium 2.8GHz以上 内存:256MB以上 硬盘空间:80G以上 操作系统:Windows7 运行环境:eclips

2. 程序设计与实现 2.1需求分析 Java是一种简单的,面向对象的,分布式的,解释的,键壮的,安全的,结构中立的,可移植的,性能很优异的,多线程的,动态的语言。Java去掉了C++语言的许多功能,如:指针运算、结构、typedefs、#define,让Java的语言功能很精炼,并增加了一些很有用的功能,如自动收集碎片。这将减少平常出错的50%。而且,Java很小,整个解释器只需215K的RAM。 因此运用JAVA程序编写聊天室,实现简单聊天功能。本次课程设计做的是Java简单聊天室,它是图形界面、线程、流与文件等技术的综合应用,其界面主要采用了java.awt包,javax.swing包等。程序实现了聊天室的基本功能,其中有: (1)启动服务器:实现网络的连接,为注册进入聊天室做准备。 (2)启动客户端:实现网络的链接,可以进行正式的聊天 (3)发送信息:为用户发送信息提供平台。 (4)离开界面:使用户退出聊天室。 (5)关闭服务器:断开与网络的连接,彻底退出聊天室。

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