局域网聊天程序(类飞鸽)综合设计

合集下载

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

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

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

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

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

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

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

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

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

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

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

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

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

局域网聊天系统详细设计成绩:目录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视图设计2.3 存储过程设计2.3.1 存储过程汇总2.3.2 XXX存储过程代码3.服务器端设计及实现3.1 启动服务器功能的设计与实现3.1.1 界面设计此处粘贴界面设计的截图3.1.3 关键代码此处粘贴该功能的主要代码3.2消息管理功能的设计与实现3.2.1 界面设计此处粘贴界面设计的截图3.2.3 关键代码此处粘贴该功能的主要代码4.客户端的设计与实现4.1 注册模块的设计与实现4.1.1 界面设计此处粘贴该功能的界面此处粘贴该功能的流程图4.1.3 关键代码此处粘贴该功能的关键代码4.2登陆功能的设计与实现4.2.1 界面设计此处粘贴该功能的界面此处粘贴该功能的流程图4.2.3 关键代码此处粘贴该功能的关键代码4.3聊天功能的设计与实现4.3.1 界面设计此处粘贴该功能的界面4.3.2 流程图此处粘贴该功能的流程图4.3.3 关键代码此处粘贴该功能的关键代码5.人员及分工9。

局域网聊天系统设计

局域网聊天系统设计

局域网聊天系统设计一、概述:局域网聊天聊天希望基于网络编程的基本思想,目前只能应用局域网之间的通信,本软件的设计是基于企业内部网的设计理念,因此在软件运行之前必须确认所属局域网的ip地址范围,本程序基于172.19.12.3---172.19.12.255范围内来实现局域网之间进行通信的。

如果你所处的局域网友所变化,那么就要在resource.java文件中适当的修改IP地址范围:具体的修改如下图所示:你只需要填写你所在的局域网的网段就可以了;二、功能模块概述(1)显示局域网内的用户在本模块中涉及到局域网的用户的显示问题,这里用到了tree来显示用户列表,即是显示在本局域网内所有的在线用户;(2)系统的搜索模块该模块主要是扫描当前局域网的在线用户,并将其加入到好友列表中。

(3)聊天模块主要用于显示聊天的两个用户之间的通信信息:如下图所示三、详细功能设计(1)公共Dao设计主要用于数据库的连接显示,如添加用户,删除用户等基本操作;private Dao(){try{Class.forName(driver);if(!dbExists()){conn=DriverManager.getConnection(url +";create=true");createTable();//创建表}else{conn=DriverManager.getConnection(url);addDefUser();}}catch(Exception e){e.printStackTrace();JOptionPane.showMessageDialog(null, "数据库连接异常,或者本软件已经运行");}}具体内容请见DAO.java文件的详细设计;(2)主界面的设计主界面主要包括显示当前主机用户的主机名,以及tab控件组成的两个功能模块;好友列表和搜索局域网内IP;主界面显示的关键代码:public QQ(){//负责界面的显示/*界面设计需要注意的事项:* 初始化控件是一定要实例化该对象并设置其显示方式,比如chatree要实例化不然就无法显示** */super(new Frame());//this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//数据库初始化addWindowListener(new FrameWindowListener());// 添加窗体监视器dao = Dao.getDao(); //获取Dao的实例try {// 启动通讯服务端口ss = new DatagramSocket(1111);//创建数据报套接字} catch (SocketException e2) {if (e2.getMessage().startsWith("Address already in use")) JOptionPane.showMessageDialog(null, "服务端口被占用,或者本软件已经运行。

基于java的局域网飞鸽传书设计与实现讲解

基于java的局域网飞鸽传书设计与实现讲解

毕业论文(设计)题目基于Java的局域网飞鸽传书软件设计与实现系部计算机科学与工程系专业计算机科学与技术年级 2009学生姓名学号指导教师基于Java的局域网飞鸽传书软件设计与实现计算机科学与技术学生指导教师【摘要】随着移动互联网的时代已经来临,社交应用广泛存在,这些应用加强了人与人之间的沟通;从小环境来说比如校园网,以及部分局域网在内的的各种交互也广泛存在。

局域网之间的信息交互,并不一定要建立在互联网的基础上,本设计就是针对局域网这一环境,旨在通过设计基于Java程序设计语言的一个局域网内能够相互通信,和传输文件的软件,来增强自我实践能力,及了解通信软件的设计技术。

本设计是用Java语言编写的类飞鸽传书软件,可以实现简单的局域网内的主机之间的信息发送,以及文件的传输,实现较简单快速,主要采用了UDP中的数据报协议,Socket 协议实现主机之间的通信。

【关键词】局域网通信传输文件IP Messenger-software design and implementation used in LANbased on Java【Abstract】As the age of mobile and Internet is coming , social applications is widespread, and these applications enhance communication between people at the same time; On the side from the environment, such as campus network, as well as the various interactions, including the part of the LAN is also widespread. Internet for information exchange between the LAN is not necessary, this design is for the local area network designed to communicate with each other within a local area network based on the Java programming language through this design, and transfer files software to enhance the ability of self-practice,and understanding of communications software design techniques.The design,which included in the IP Messenger software is written in Java , can send information and make file transfers between the host. It is simple and fast, mainly uses the Matagorda Protocol UDP, Socket protocol communication between hosts.【Keywords】LAN,Communication, transmission File目录第一章绪论 (5)1.1研究现状 (5)1.2主要研究内容 (5)1.3论文结构 (6)第二章需求分析及技术介绍 (7)2.1软件运行环境及开发环境 (7)2.1.1开发环境配置 (7)2.2相关技术介绍 (10)2.2.1Eclipse开发工具的选择原因 (10)2.2.2Java介绍 (10)2.2.3 Java语言的图形化编程 (11)2.2.4 Java的Socket编程 (12)2.4设计目标 (12)2.4.1基本性能 (12)2.4.2开发目标 (12)第三章系统设计 (13)3.1系统概要设计 (13)3.1.1软件用例图 (13)3.1.2软件总体分析 (14)3.2系统模块功能实现 (15)3.2.1 广播模块 (15)3.2.2 发送文件模块 (16)3.2.3 设置界面模块 (17)3.2.4 文件数据导入模块 (18)3.2.5监听模块 (19)3.2.6充当服务端模块 (20)第四章软件界面设计与程序主模块实现 (22)4.1界面设计 (22)4.1.1界面布局 (22)4.1.2用户区域 (22)4.1.3聊天区域 (22)4.2主模块与功能模块的组织实现 (23)4.2.1 主程序运行界面 (23)4.2.2 MainFrame.java组成 (24)第五章软件调试与测试 (26)5.1获取用户ip功能测试 (26)5.2发送文本消息模块测试 (27)5.3文件传输模块测试 (28)5.4设置模块测试 (30)第六章总结 (31)参考文献 (32)附录 (33)致谢 (35)第一章绪论1.1研究现状移动互联网背景下,通讯软件各种各样,通讯软件在各行各业中广泛应用,对于人与人之间的通信交流加强了人们沟通,局域网内的文件传输也促进了资源共享的便利;目前比较流行的通讯软件类别是即时通讯软件。

局域网即时聊天程序的设计与实现

局域网即时聊天程序的设计与实现

局域网即时聊天程序的设计与实现随着互联网的普及,人们越来越频繁地使用即时通讯工具进行沟通和交流。

然而,对于一个机构或公司内部的局域网来说,使用公开的即时通讯工具可能存在信息泄漏和安全性风险。

因此,设计和实现一个局域网即时聊天程序就变得尤为重要。

首先,局域网聊天程序需要具备以下几个基本功能:1.用户注册与登录:每个用户需要注册一个账号,并使用该账号登录局域网聊天程序。

2.好友管理:用户可以添加好友,删除好友,查找好友等操作。

好友之间可以实时聊天。

3.群组功能:用户可以加入群组,并与群组内的其他成员进行聊天。

4.文件传输:用户可以发送文件给好友或群组成员。

5.聊天记录存储:聊天程序需要将用户的聊天记录存储在服务器上,方便用户随时查看。

接下来,我将介绍一个局域网即时聊天程序的设计和实现。

首先需要设计和实现一个服务器端,负责处理用户的注册、登录、好友管理等功能,同时负责接收和转发用户的聊天消息和文件传输请求。

服务器端可以使用一种常见的服务器端程序设计语言来实现,如Java、Python或C#等。

用户可以在自己的电脑或手机上安装局域网聊天程序的客户端。

客户端可以使用跨平台的框架来实现,如Electron、React Native等。

客户端需要提供用户注册、登录、好友管理、群组功能等界面和操作方式,并与服务器端进行通信。

3.网络通信协议设计局域网聊天程序需要定义一种网络通信协议,用于客户端与服务器端之间的通信。

通信协议可以使用XML、JSON等格式进行定义和传输。

协议需要明确定义消息的格式,包括消息的类型、发送者、接收者、内容等。

服务器端需要使用数据库来存储用户信息、好友关系、群组信息和聊天记录等数据。

可以使用关系型数据库如MySQL或PostgreSQL,也可以使用非关系型数据库如MongoDB或Redis。

局域网聊天程序需要考虑安全性问题,防止用户信息泄漏和非法入侵。

可以使用加密算法对用户密码进行加密存储和传输,同时使用防火墙、反病毒软件等工具保护服务器的安全。

局域网即时聊天程序的设计与实现

局域网即时聊天程序的设计与实现

局域网即时聊天程序的设计与实现随着互联网的发展,人们在日常生活和工作中越来越依赖于聊天工具来进行沟通和交流。

在企业或组织的局域网中,建立一个即时聊天程序,可以方便员工之间进行实时沟通,提高工作效率。

本文将介绍局域网即时聊天程序的设计与实现。

一、需求分析1.功能需求-用户登录和注册:用户需要通过用户名和密码进行登录,如果没有账号可以进行注册。

-好友管理:用户可以添加好友、删除好友,以及查看好友列表。

-即时聊天:用户可以选择好友进行即时聊天,可以发送和接收文本、图片等内容。

-离线消息:如果用户不在线,他人发送给他的消息会被保存为离线消息,在用户上线后可以查看。

-群聊功能:用户可以创建群组,邀请好友加入群组,并进行群聊。

2.性能需求-快速响应:用户发送消息后,要能够快速收到回复,保证实时性。

-稳定性:系统要能够长时间稳定运行,不会出现崩溃等问题。

-安全性:用户的账号信息和聊天内容要进行加密,确保不被他人窃取。

3.界面需求-界面简洁美观,操作方便,用户体验良好。

-聊天窗口要支持表情符号和文件传输等功能。

-支持多语言切换和个性化设置。

二、系统设计1.架构设计为了实现局域网即时聊天程序,可以采用客户端-服务器架构。

服务器端负责接收和转发消息,客户端负责与用户的交互和消息的发送接收。

2.服务器端设计-用户管理模块:处理用户的登录、注册、注销等操作,验证用户身份并管理用户数据。

-好友管理模块:实现好友的添加、删除和查询等功能,保存用户的好友列表。

-消息管理模块:接收用户发送的消息,并根据接收者的状态进行处理,如果接收者在线则立即发送,否则保存为离线消息。

-群聊管理模块:实现群组的创建、邀请和群聊功能。

-数据库模块:用于保存用户账户信息、好友关系和群组信息等数据。

3.客户端设计-用户界面模块:实现用户登录、注册、好友管理和聊天等界面的显示和交互。

-消息处理模块:负责发送和接收消息,包括文本、图片等内容。

-好友模块:实现查找好友的功能,用户可以根据用户名或账号进行。

软件课程设计报告--局域网聊天程序

软件课程设计报告--局域网聊天程序

软件课程设计报告——C语言班级:姓名:学号:指导教师:日期:年月日目录1设计内容 (1)2应用程序总体分析与设计 (1)3应用程序各功能模块分析与设计 (2)3.1功能模块 (2)3.1.1服务器模块 (2)3.1.2客户端模块 (2)3.2模块流程图 (4)4程序测试 (6)4.1测试过程 (6)4.1.1 VS 2010截图 (6)4.2测试结果 (7)4.2.1服务器端截图 (7)4.2.2客户器端截图 (7)5程序文档 (8)5.1使用说明 (8)5.2程序说明 (8)6 程序源代码 (8)1设计内容通过C语言程序编程实现一个局域网聊天程序,包括服务器端程序和客户端程序,程序能够实现两台主机或多台主机间的基本通信和文件传输。

2应用程序总体分析与设计A.编译预处理命令#include <Winsock.h>#include <stdio.h>#pragma comment (lib,"wsock32.lib")B.该应用程序中使用的基本Winsock函数有:WSAStartup,socket,bind,listen,accept,connect,shutdown和closesocket等,使用数据传输函数有send和recv。

C.服务器程序的步骤如下:1)初始化以及创建套接字,由WSAStartup()和socket()函数完成。

2)要将指定协议的套接字绑定到本地的IP地址和端口号。

这个过程通过bind()函数来完成。

3)服务器处于监听状态,等待客户端连接,以便为它们的请求提供服务。

服务进程必须在所绑定的名字上进行监听。

因此需要把套接字置为监听模式。

通过listen()函数来实现。

4)服务器程序调用函数accept准备接受来自客户端的连接。

如果有一个客户端这时用connect()函数试图建立连接,服务器端就可以接受连接。

5)建立连接后,服务器端和客户端之间就可以使用send()和recv()函数进行通信。

局域网聊天程序(类飞鸽)综合设计

局域网聊天程序(类飞鸽)综合设计

基于Socks局域网内即时通讯软件(类飞鸽)摘要网络通讯在当今已经不算新鲜事物,但大多数网络通讯都需要借助Internet 上的服务器,这就给那些具有大规模内部网络的用户造成了许多问题,如浪费网络资源、遭遇到网络攻击、传播的病毒、破坏防御系统等等。

由于互连网上的网络通讯工具给企业内部信息交流带来了不便,所以为了方便内部网络的用户之间的沟通,需要开发一个基于局域网的信息收发系统的即时通讯工具,实现在内部网络中进行信息的交流。

本课题设计主要针对局域网通讯而开发设计的,采用的是C/S 构架,类似飞鸽传书系统,来实现聊天、文件传输功能,并借助一些网络通讯组件,成功的实现了在局域网上的即时通讯。

本论文的目标是设计一个类似飞鸽传输的局域网通信软件,并分析它在其领域的优势。

本设计以 C 编写,能在windows xp 等环境下运行。

设计共分为几大模块,分别是:首先,介绍选题设计内容和目标;其次,介绍需求分析和设计思想(TCP/IP 点对点协议技术,C/S 架构和SOCKET 网络编程技术);然后,设计的具体实现;最后,对工作计划统计以及分析系统进行测试并得到测试结果和附录。

关键词:聊天;文件传输;socket;类飞鸽传书;C/S 结构一、设计内容1.1 课题背景当时间走向21 世纪,当今时代也由工业经济渐渐成为了知识经济、信息经济的时代。

信息的需求量的不停增加,促使了计算机通信的日新月异!虽然网络的使用频率与使用的范围都越来越广泛,但是人们使用的网络的用途主要的还是只有两个:(1).相互之间的沟通,(2).资源共享。

局域网作为网络的一个重要组成部分,它不但用户与外界连接的枢纽,同时也是近距离用户之间沟通与资源共享的一个重要途径。

在这种情况下,如何使局域网内的用户便捷的勾通,以及快速的资源共享,也就成为了人们对网络研究的重点之一。

本系统仿飞鸽传输,是一个局域网内的通迅工具,主要通过Winsockt 完成。

它据有的功能有:(1)局域网内用户间简单的文字聊天功能;(2)局域网内用户间相互的文件、文件夹传输。

局域网聊天程序设计.

局域网聊天程序设计.

青岛理工大学C++面向对象课程设计报告院(系):计算机工程学院专业:软件工程学生姓名: 管巨伟班级软件132 学号:201307227 题目:局域网聊天程序设计起迄日期:2015.6.29 〜2015.7.10设计地点:计算机学院机房指导教师:李传斌杨鑫完成日期:2015 年7月10日任务书一、课程设计目的与要求1.课程设计目的面向对象程序设计作为一门软件设计的课程,具有极强的实践性,必须使学生具备灵活应用理论知识的能力及面向对象程序设计技能。

所以在《C++ 面向对象程序设计》课程学习完成后,安排课程设计教学环节。

通过课程设计,使学生实际掌握面向对象的程序设计方法,了解C++ 面向对象的设计方法与技巧,有效地、深刻地理解课程内容,体会理论、方法和设计原则;培养学生分析实际问题和解决问题的能力,使学生具备使用面向对象程序设计开发工具设计实际系统的能力。

2.课程设计要求结构化程序设计使用的是功能抽象,面向对象程序设计不仅能进行功能抽象,而且能进行数据抽象。

“对象”实际上是功能抽象和数据抽象的统一。

C++语言的“对象”是“类”的实例,程序设计的基础是设计类,所以类的有关概念都是重点,尤其要抓住抽象、封装、继承和多态性等要素。

面向对象程序设计的核心是类层次的设计。

而具体类的设计的重点是如何选择数据成员和成员函数。

根据数据成员和成员函数的特点,结合具体问题设计合适的类。

成员函数设计中的难点是选择函数类型及其参数传递方式。

开发系统离不开设计平台,学生应在掌握面向对象程序设计基础上,熟悉并能熟练使用面向对象程序设计开发平台,结合相关理论知识,进行相应系统开发。

二、课程设计内容课程设计题目及要求局域网聊天程序设计:服务端设置,通过对客户端多个线程的监听,显示客户端的上线、下线,与客户端进行信息交流。

开启服务器是通过新建socket,绑定端口号,监听线程,等待客户端连入。

创建动态数组,完成客户端的连入,存储客户端信息。

课程设计局域网聊天

课程设计局域网聊天

课程设计局域网聊天一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。

知识目标要求学生掌握局域网的基本概念、搭建方法和网络安全知识。

技能目标要求学生能够独立搭建简单的局域网,进行文件共享和远程操作。

情感态度价值观目标要求学生树立正确的网络安全意识,尊重网络道德,培养合作精神和创新意识。

通过分析课程性质、学生特点和教学要求,明确课程目标,将目标分解为具体的学习成果。

学生能够在课程结束后,理解并掌握局域网的基本原理,能够独立完成局域网的搭建和维护,具备一定的网络安全意识,能够在实际生活中运用所学知识解决实际问题。

二、教学内容根据课程目标,选择和教学内容,确保内容的科学性和系统性。

教学大纲如下:1.局域网的基本概念:介绍局域网的定义、分类和特点,让学生了解局域网的基本概念。

2.局域网的搭建方法:讲解局域网的硬件设备、网络协议和搭建步骤,让学生掌握局域网的搭建方法。

3.局域网的文件共享:介绍文件共享的概念和方法,让学生学会在局域网内进行文件共享。

4.局域网的远程操作:讲解远程操作的原理和方法,让学生能够进行远程操作。

5.网络安全知识:介绍网络安全的基本概念、威胁和防护措施,让学生具备一定的网络安全意识。

三、教学方法选择合适的教学方法,如讲授法、讨论法、案例分析法、实验法等,以激发学生的学习兴趣和主动性。

1.讲授法:用于讲解局域网的基本概念、搭建方法和网络安全知识,帮助学生掌握基本原理。

2.讨论法:学生讨论局域网搭建过程中的问题,培养学生的合作精神和解决问题的能力。

3.案例分析法:分析典型的局域网应用案例,让学生了解局域网在实际生活中的应用。

4.实验法:让学生动手搭建局域网,进行文件共享和远程操作,提高学生的实际操作能力。

四、教学资源选择和准备适当的教学资源,包括教材、参考书、多媒体资料、实验设备等。

1.教材:选用权威、实用的教材,如《计算机网络》、《网络安全》等。

2.参考书:推荐学生阅读相关参考书,如《局域网技术手册》、《网络安全防护手册》等。

局域网聊天工具设计

局域网聊天工具设计

计算机网络期中作业程序设计类——局域网聊天工具的设计局域网聊天工具设计一.需求分析所设计的局域网聊天工具,能够实现用户登入聊天服务器,发送和接收聊天信息。

主要包括两个方面的程序设计:(1)服务器端聊天程序。

负责接收来自客户端的聊天信息,并根据客户端的要求把这些信息转发到另一个或多个聊天客户中。

(2)客户端聊天程序。

负责建立和维护与服务器的连接,向服务器发送本客户端的聊天内容,同时从服务器接收对方的响应。

二.概要设计设计局域网聊天工具,为了实现用户之间的交互,需要进行窗口界面的设计。

需要用到网络编程相关的知识。

本设计的程序在前面的代码中都是有关窗口界面的实现程序。

需要包含#include <winsock.h>、#include <windows.h>这些头文件,为窗口界面的设计提供必要的函数和API支持。

#include <process.h>头文件为多线程的进行提供相关的函数。

要完成聊天工具的设计,服务器程序需要等待客户端的连接请求,以及在与客户端建立连接之后,接收客户端的消息,对客户端的消息进行处理,并转发给其他客户端,实现客户端之间的通讯。

客户端程序需要包含两个方面,首先是发送消息的程序,为了简化设计,本聊天工具限制发送的字节数为100个字节,即客户端一次发送的数据限制在100字节以内,支持英文字母、符合及汉字的收发。

其次,客户端程序还应包含对接收消息的处理程序,在服务器转发其他客户端发送来的消息时,客户端要对这些消息进行处理。

三、原理分析服务器为了能对客户机发起的连接做出响应,该服务器必须先准备好。

这意味着两件事,第一,服务器程序不能处于睡眠状态,在客户机程序视图发起连接之前,它必须已经作为一个进程在系统中运行。

故必须先运行服务器程序。

第二,该服务器程序必须有某种类型的门户(更确切的说是套接字)已经打开,患有来自运行在任意机器上的客户机程序发起的连接。

软件工程课程设-----局域网通讯软件——乐在飞鸽设计与实现

软件工程课程设-----局域网通讯软件——乐在飞鸽设计与实现

榆林学院本科软件工程课程设计论文软件工程课程设计报告题目局域网通讯软件——乐在飞鸽院系班级计13本2组长组员指导教师局域网通讯系统设计与实现目录页一、目的、要求 (1)二、任务分配 (1)1 局域网通讯系统——乐在飞鸽设计与实现 (2)1.1 系统需求分析 (2)1.1.1 系统功能需求 (2)1.1.2 系统性能分析 ...................................................... 错误!未定义书签。

1.2系统用例分析 (3)1.2.1 普通用户用例分析 (3)1.2.2 管理员用例分析 .................................................. 错误!未定义书签。

1.2.3 超级管理员用例分析 .......................................... 错误!未定义书签。

2 XXX系统设计 (4)2.1 总体设计 (4)2.2 系统功能设计 ................................................................. 错误!未定义书签。

2.2.1 前台功能模块设计 (5)2.2.1 后台功能模块设计 (6)2.3 数据库设计 (6)2.3.1 数据库概念结构设计 (6)2.3.2 数据库逻辑结构设计 (6)2.3.3 数据库物理结构设计 (7)2.3.4 数据库整体关系 (7)3 XXX系统实现 (9)3.1 系统环境 (9)3.2 数据库连接 (9)3.3 前台模块的实现 (9)3.4 后台模块的实现 (10)4 XXX系统测试 (11)4.1测试的意义和目的 (11)4.2 测试方案 (11)4.3 功能测试 (11)4.3.1 登录注册测试 (11)5 总结 (12)致谢 (13)局域网通讯系统设计与实现一、目的、要求通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。

飞鸽传书软件的设计与实现.

飞鸽传书软件的设计与实现.

飞鸽传书软件的设计与实现2 系统需求分析 2.1系统设计目标根据对飞鸽传输系统的调研,我认为本设计需要满足以下几个系统设计目标: (1)实用性原则:真正为局域网的实际工作服务,按照需求的轻重缓急,合理设计本系统。

(2)可靠性原则:必须为用户提供安全的服务,尤其是要保证传输的稳定性。

(3)友好性原则:使用本系统的用户相当一部分对计算机知识了解很少,所以系统操作上要求简单方便,便于用户掌握。

(4)可扩展性原则:采用开放的标准和接口,便于系统向更大的规模和功能扩展。

2.2系统总体需求分析根据用户需求,本系统分为两个子系统:1:局域网内简单文字聊天子系统,它是在局域网内选择相应的用户,以便对之发送文字信息,2:文件、文件夹传输系统,它是在先把需要传输的文件、文件夹转换成相就的数据流传关,到了目的主机再由之还原。

本系统的文字聊天系统实现的功能类似于QQ用户之间的聊天。

在设计系统时,应根据简洁、流畅的特点安排布局,在编制程序时应充分考虑这一点传输的稳定、快捷,真正做到“简洁、高效、流畅、安全”的使用环境。

用户使用的过程为,先是用户登开启本软件,软件自动检索局域网的其它用户,并以之成为用户列表,让用户选择。

当用户发现所要连接的用户之后,双击该用户,则出现发送窗口。

用户用之来发送消息或者文件。

接收方可以选择接收或者拒绝相应的传输文件。

2.3.1开发运行环境开发此系统所需的基本软、硬件环境为: (1).Windows95、 Windows98 或WindowsNT/2000/XP;(2).Pentium100及以上档次的IBM PC及其兼容机; (3).128M以上内存措施;(4).1G以上可用硬盘空间; (5).VGA显示器; 以上的配置均要求为在同一局域网内的两台或两台以上。

2.3.2系统开发语言本系统采用VC/VC++语言开发。

VC/VC++是前些年迅速发展和推广的一种计算机语言,近年来,已经相当的完善。

局域网聊天程序

局域网聊天程序

一、题目局域网聊天程序的设计与实现该程序实现局域网内的聊天功能,包括服务器端程序和客户端程序两部分。

客户端程序:可连接到服务器,并将消息发送到服务器端和接受服务器端发送来的信息。

服务器端程序:可将消息发送到客户端和接受客户端发送来的信息二、需求分析Server(服务器端):服务器 ChatRoomServer 启动后自动监听默认端口:DEFAULT_PORT 6666等待客户的连接,当有客户连接上来时,在文本域显示连接信息。

服务器端点击窗口关闭或点击窗体内的退出按钮可以关闭服务器。

Client(客户端):客户端ChatRoomClient 启动后显示客户端界面:窗体上方有一个“连接”按钮和一个文本筐(文本筐在按钮的右面)。

在文本筐中输入服务器地址,再按左边的“连接”按钮或按键盘上的”Enter”键,连接服务器。

如果连接成功将显示连接成功信息,否则将显示连接失败信息。

连接成功后客户可以在窗体底部消息标签右边的文本筐中输入要发送的消息,然后点击文本筐右边的“发送“按钮或按键盘上的”Enter“键发送信息。

三、概要设计①客户端四、详细设计①服务器1、程序启动是初始化界面、并开始监听: public ChatRoomServer(){try{jbInit();}catch(Exception e){e.printStackTrace();}serverListen();//服务器开始监听}jbInit(){、、、、}初始化界面,注册button1(退出)按钮和窗口关闭事件。

serverListen(){、、、}打开并监听端口:6666,2.public void run(){//接受连接并记录线程信息、、、、、、try{while(true){clientSock=serverSock.accept();CommunicateThread ct=newCommunicateThread(clientSock,this,index);//创建线程保持连接clients.add(ct);//记录连接信息到clients 数组clientsInfor.add("Thread-"+i);//记录连接名称、、、、、、、、、}CommunicateThread ct=new CommunicateThread(clientSock,this,index);当有连接上来时,创建线程以保持连接。

局域网聊天程序实验报告

局域网聊天程序实验报告

局域网聊天程序实验报告本程序是专门为局域网而建立的聊天程序,它功能有限只能用于局域网聊天当中,下面我具体介绍它的功能:(1)主界面:(2)操作方法:(注:必须要装VC++才能够运行本程序)1.首先要在每个机器上都装上我们的聊天程序的服务端2.然后再选择设置里面的建立服务器,这样就可以向群内发送消息了,在发送消息之前,必须要输入接受者姓名,不然消息将不能发送成功.3.如果不知道接受者姓名者,可以选择在线用户来查看局域网内在线的用户.然后选在上面双击该用户,或者在接受者右边的文本框中输入接受者姓名即可向该用户发送消息了.4.退出程序选择设置里面的退出即可.(3)程序简单操作流程:(3)大概通信流程:(5)程序代码:1.建立服务器代码:void CMyNetChatDlg::OnCreathost() //create host{if(m_hSocket!=NULL){closesocket(m_hSocket);m_hSocket=NULL;}if(m_hSocket==NULL){m_hSocket=socket(AF_INET,SOCK_STREAM,0);ASSERT(m_hSocket!=NULL);}UpdateData(TRUE);m_addr.sin_addr.S_un.S_addr=INADDR_ANY;m_addr.sin_family=AF_INET;m_addr.sin_port=htons(52428);int ret=0;ret=bind(m_hSocket,(LPSOCKADDR)&m_addr,sizeof(m_addr));if(ret==SOCKET_ERROR){closesocket(m_hSocket);AfxMessageBox("Bind Error");return ;}ret=listen(m_hSocket,12);if(ret==SOCKET_ERROR){closesocket(m_hSocket);AfxMessageBox("Listen Error");return ;}AfxBeginThread(AcceptThread,NULL);}代码功能就是在整个局域网中建与其它计算机建立连接,使其它计算机能够访问本机上的内容,以及向本机发送消息等功能,其主要原理就是通过建立工作组来完成的.2下面我们来看下发送消息代码:void CMyNetChatDlg::OnSended(){// send message to hostm_showname.GetWindowText(m_name);if(m_name.IsEmpty()){AfxMessageBox("请选择发送用户");return;}strname=GetIP(m_name);if(m_cSocket!=NULL){closesocket(m_cSocket);m_cSocket=NULL;}if(m_cSocket==NULL){m_cSocket=socket(AF_INET,SOCK_STREAM,0);ASSERT(m_cSocket!=NULL);}UpdateData(TRUE);m_caddr.sin_addr.S_un.S_addr=inet_addr(strname);m_caddr.sin_family=AF_INET;m_caddr.sin_port=htons(52428);int ret=0;int caddrlength=sizeof(m_caddr);ret=connect(m_cSocket,(LPSOCKADDR)&m_caddr,caddrlength); if(ret==SOCKET_ERROR){connectFlag=FALSE;int err=WSAGetLastError();if(err==10061)AfxMessageBox(_T("服务器未打开"));return ;}connectFlag=TRUE;if(connectFlag==TRUE){m_send.GetWindowText(m_sendstr);if(m_sendstr.IsEmpty()){AfxMessageBox(_T("不能发空消息!"));return;}CString sendstr;char *sendbuf=NULL;sendstr+=char(changstr.GetLength());sendstr+=changstr;sendstr+=char(m_sendstr.GetLength());sendstr+=m_sendstr;sendbuf=sendstr.GetBuffer(0);sendstr.ReleaseBuffer(-1);int slength;slength=send(m_cSocket,sendbuf,sendstr.GetLength(),0);if(slength!=sendstr.GetLength()||m_cSocket==SOCKET_ERROR){int errs=WSAGetLastError();AfxMessageBox(_T("发送消息失败"));return ;}m_send.SetWindowText("");return ;}AfxMessageBox(_T("请先连接"));}在建立了服务器了就能向HOST内的用户发送消息,在没有建立服务器的前提下是不能向HOST内的用户发送消息.还有如果发送空消息系统也会提示出错的.3.如何查看在线用户看在线用户的方法很简单就是用GetLanActiveComputer();这个函数来完成实现的,另外还可以用sleep()来控制在线用户的数量.以上及是本程序的所有功能及简略代码,由于时间关系,本系统的功能还不够强大,需要进一步改善,不过它基本上能够实现局域网内部聊天.而且在应用领域也比较方便,用户操作起来非常的方便,所以,它的实用性还是很强的,再加强一下它的功能,就基本上完善了.。

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

基于Socks局域网内即时通讯软件(类飞鸽)摘要网络通讯在当今已经不算新鲜事物,但大多数网络通讯都需要借助Internet 上的服务器,这就给那些具有大规模内部网络的用户造成了许多问题,如浪费网络资源、遭遇到网络攻击、传播的病毒、破坏防御系统等等。

由于互连网上的网络通讯工具给企业内部信息交流带来了不便,所以为了方便内部网络的用户之间的沟通,需要开发一个基于局域网的信息收发系统的即时通讯工具,实现在内部网络中进行信息的交流。

本课题设计主要针对局域网通讯而开发设计的,采用的是C/S 构架,类似飞鸽传书系统,来实现聊天、文件传输功能,并借助一些网络通讯组件,成功的实现了在局域网上的即时通讯。

本论文的目标是设计一个类似飞鸽传输的局域网通信软件,并分析它在其领域的优势。

本设计以 C 编写,能在windows xp 等环境下运行。

设计共分为几大模块,分别是:首先,介绍选题设计内容和目标;其次,介绍需求分析和设计思想(TCP/IP 点对点协议技术,C/S 架构和SOCKET 网络编程技术);然后,设计的具体实现;最后,对工作计划统计以及分析系统进行测试并得到测试结果和附录。

关键词:聊天;文件传输;socket;类飞鸽传书;C/S 结构一、设计内容1.1 课题背景当时间走向21 世纪,当今时代也由工业经济渐渐成为了知识经济、信息经济的时代。

信息的需求量的不停增加,促使了计算机通信的日新月异!虽然网络的使用频率与使用的范围都越来越广泛,但是人们使用的网络的用途主要的还是只有两个:(1).相互之间的沟通,(2).资源共享。

局域网作为网络的一个重要组成部分,它不但用户与外界连接的枢纽,同时也是近距离用户之间沟通与资源共享的一个重要途径。

在这种情况下,如何使局域网内的用户便捷的勾通,以及快速的资源共享,也就成为了人们对网络研究的重点之一。

本系统仿飞鸽传输,是一个局域网内的通迅工具,主要通过Winsockt 完成。

它据有的功能有:(1)局域网内用户间简单的文字聊天功能;(2)局域网内用户间相互的文件、文件夹传输。

1.2 本课题主要研究背景随着计算机和通讯技术的发展,计算机的网络化已经渗透到各个应用领域,尤其是以TCP/IP 协议之间的网络互连发展很快,计算机应用系统的开发由传统的单机方式转向到了网络环境的开发。

大部分编程语言都提供了基于Windows Sockets 网络编程接口的Win socket 控件,它使开发TCP/IP 通讯变得简单方便。

网络之间进行数据通讯时,使用地址来标识网络中的计算机,有了地址以后,数据才会准确地发送到地址所指向的计算机。

TCP/IP 协议使用IP 地址为网络中计算机的标识,而且每台计算机的IP 地址是唯一的,一般情况下,每台计算机运行的程序不止一个,因此要在应用程序中建立连接的话,还需要一个地址标识。

在TCP/IP 协议书中使用端口(PORT)作为计算机上运行的应用程序的标识,因此TCP/IP 协议中一个有效的网络地址包括IP 地址和端口地址两个部分。

TCP/IP 协议提供了两种计算机之间的通讯方式:TCP 方式和UDP 方式。

TCP 是一种面向连接的服务,在文件传输时会先行建立连接,通过链接提供双向、有序且无重复的数据流服务、以及流量控制、差错检测和纠错等服务,从而确保文件传输的正确性;UDP 则是一种无连接的服务,它在传输文件时不会确保传输端的文件能够正确无误的传送到接收端,所以当使用UDP 时,通常要自己作接收确认的工作。

1.3 本课题主要研究思路和方法本系统的开发采用基于win socket 的广播发送模式,进行文字聊天和文件、文件夹传输的设计与开发。

因此,本设计首先分析该系统的相关功能,结合本设计的相关要求写出需求分析;其次,综合运用以前所学的相关知识,选择所熟悉的开发工具进行本设计的开发;在设计中以需求分析为基础,写出系统开发计划、实现流程及相关问题的实现方法;最后,在系统开发完毕后,进行调试和运行,做好调试和运行的相关记录。

1.4 研究项目的目的以及意义随着互联网技术的迅猛发展,网络给人们带来了很多便利,比如人们借助于网络进行相互交流变得更加方便。

聊天工具作为互联网中运用最为广泛的通信工具之一,如今都已被广大网民接受。

很多人都使用过飞鸽传书软件,飞鸽传书发展到现在已经具有了很多功能:有文字聊天、文件、文件夹传输的基本功能,也有密封、加锁等较为复杂的功能。

本毕业设计的目的主要是为了检查使学生综合运用以前所学知识(包括以前所学的一些关于网络、编程、信息安全等知识)的能力,模拟局域网飞鸽传书软件,开发一个天系统软件,本毕业设计主要实现局域网内文字聊天及文件传输等功能。

1.5 Win Socket 的寻址方式因为Winsock 要兼容多个协议,所以必须使用通用的寻址方式。

TCP/IP 使用地址和端口号来指定一个地址,但是其它协议也许采用不同的形式。

如果Winsock 强迫使用特定的寻址方式,添加其他协议就不大可能了。

在Winsock 中应用程序员通过SOCKADDR_IN 结构来指定IP 地址和端口号。

定义如下:Struct sockaddr_in{short sin_family;u_short sin_port;struct in_addr sin_addr;har sin_zero[8];};应用程序可以使用inet_addr 函数将一个小数点分隔的十进制IP 地址字符串转化成由32 位二进制数表示的IP 地址。

inet_ntoa 函数将一个网络字节顺序的32 位IP 地址转化字符串。

注意:inet_addr 返回的32 位二进制数是用网络顺序存储的1.6本次程序设计组成员及分工张天国沈敏杨欣二、设计目标根据对飞鸽传输系统的调研,我认为本设计需要满足以下几个系统设计目标:(1)实用性原则:真正为局域网的实际工作服务,按照需求的轻重缓急,合理设计本系统。

(2)可靠性原则:必须为用户提供安全的服务,尤其是要保证传输的稳定性。

(3)友好性原则:使用本系统的用户相当一部分对计算机知识了解很少,所以系统操作上要求简单方便,便于用户掌握。

(4)可扩展性原则:采用开放的标准和接口,便于系统向更大的规模和功能扩展。

三、需求分析3.1 系统设计目标和可行性分析3.1.1系统设计目标根据对飞鸽传输系统的调研,我认为本设计需要满足以下几个系统设计目标:(1)实用性原则:真正为局域网的实际工作服务,按照需求的轻重缓急,合理设计本系统。

(2)可靠性原则:必须为用户提供安全的服务,尤其是要保证传输的稳定性。

(3)友好性原则:使用本系统的用户相当一部分对计算机知识了解很少,所以系统操作上要求简单方便,便于用户掌握。

(4)可扩展性原则:采用开放的标准和接口,便于系统向更大的规模和功能扩展。

3.1.2可行性分析1)技术可行性:本系统以Visual C++为主要编程环境,再结合网络通信基本原理和Socket编程及语音处理API技术,技术成熟,可行。

2)经济可行性:这个系统开发开发成较低,经济效益会远大于开发成本,可行。

3)操作可行性:系统硬件为PC机,软件为Windows Xp,而且编程环境Visual C++为专业程序员使用工具,比较易于使用,可行。

3.2 系统总体需求分析根据用户需求,本系统分为两个子系统:1:局域网内简单文字聊天子系统,它是在局域网内选择相应的用户,以便对之发送文字信息,2:文件、文件夹传输系统,它是在先把需要传输的文件、文件夹转换成相就的数据流传关,到了目的主机再由之还原。

本系统的文字聊天系统实现的功能类似于QQ用户之间的聊天。

在设计系统时,应根据简洁、流畅的特点安排布局,在编制程序时应充分考虑这一点传输的稳定、快捷,真正做到"简洁、高效、流畅、安全"的使用环境。

用户使用的过程为,先是用户登开启本软件,软件自动检索局域网的其它用户,并以之成为用户列表,让用户选择。

当用户发现所要连接的用户之后,双击该用户,则出现发送窗口。

用户用之来发送消息或者文件。

接收方可以选择接收或者拒绝相应的传输文件。

3.3 组织结构的分析以下为组织结构图:3.4开发运行环境开发此系统所需的基本软、硬件环境为:(1).WindowsXP 或win7;(2).Pentium100 及以上档次的 PC 及其兼容机;(3).128M以上内存措施;(4).1G 以上可用硬盘空间;(5).VGA 显示器; 以上的配置均要求为在同一局域网内的两台或两台以上。

3.5 系统开发语言本系统采用 VC/VC++语言开发。

VC/VC++是前些年迅速发展和推广的一种计算机语言,近年来,已经相当的完善。

它主要特点有两个方面:一是全面兼容 C ,二是支持面向对向的方法。

.3.5.1 理论知识3.5.1.1 C/S 软件架构技术C/S (Client/Server )结构,即大家熟知的客户机/服务器结构。

它是软件 系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到 Client 端和 Server 端来实现,降低了系统的通讯开销。

目前大多数应用软件系统都是 Client/Server 形式的两层结构,由于现在的软件应用系统正在向分布式的 Web 应用发展,Web 和 Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。

这也就是目前 应用系统的发展方向。

传统的 C /S 体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是 Client 端还是 Server 端都还需要特定的软件支持。

由于没能提供用户真正期望的开放环境,C/S 结构的软件需要针对不同的操作系 统系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。

3.5.1.2 用户数据报协议(UDP)UDP (User Datagram Protocol ):用户数据包协议,它和 TCP 一样位于传输层,和 IP 协议配合使用,在传输数据时省去包头,但它不能提供数据包的重传,所以适合传输较短的文件。

由于大多数网络应用程序都在同一台机器上运行,计算机上必须能够确保目的地机器上的软件程序能从源地址机器处获得数据包,以及源计算机能收到正确的回复。

这是通过使用 UDP 的"端口号"完成的。

源端口号标识了请求域名服务的本地机的应用程序,同时需要将所有由目的站生成的响应包都指定到源主机的这个端口上。

与 TCP 不同,UDP 并不提供对 IP 协议的可靠机制、流控制以及错误恢复功能等。

由于 UDP 比较简单,UDP 头包含很少的字节,比 TCP 负载消耗少,所以 UDP 适用于不需要 TCP 可靠机制的情形,比如,当高层协议或应用程序提供错误和流控制功能的时候。

相关文档
最新文档