系统总体需求分析

根据用户需求,本系统分为两个子系统:1:局域网内简单文字聊天子系统,它是在局域网内选择相应的用户,以便对之发送文字信息,2:文件、文件夹传输系统,它是在先把需要传输的文件、文件夹转换成相就的数据流传关,到了目的主机再由之还原。本系统的文字聊天系统实现的功能类似于QQ用户之间的聊天。在设计系统时,应根据简洁、流畅的特点安排布局,在编制程序时应充分考虑这一点传输的稳定、快捷,真正做到“简洁、高效、流畅、安全”的使用环境。用户使用的过程为,先是用户登开启本软件,软件自动检索局域网的其它用户,并以之成为用户列表,让用户选择。当用户发现所要连接的用户之后,双击该用户,则出现发送窗口。用户用之来发送消息或者文件。接收方可以选择接收或者拒绝相应的传输文件。

2.3组织结构的分析

以下为组织结构图:

2.3.1开发运行环境

开发此系统所需的基本软、硬件环境为:

(1).Windows95、 Windows98 或WindowsNT/2000/XP;

(2).Pentium100及以上档次的IBM PC及其兼容机;

(3).128M以上内存措施;

(4).1G以上可用硬盘空间;

(5).VGA显示器;

以上的配置均要求为在同一局域网内的两台或两台以上。

系统开发语言

本系统采用VC/VC++语言开发。VC/VC++是前些年迅速发展和推广的一种计算机语言,近年来,已经相当的完善。它主要特点有两个方面:一是全面兼容C,二是支持面向对向的方法。

  1. 系统设计

本系统主要分为文字聊天和文件传书两大部分。所以本论文将把系统分成两大模块来介绍。

文字聊天模块的整体构架

本系统文字聊天是采用C/S结构,所以每个客户端也是作为服务器端的,当系统发送信息给局域网的用户,主要由单播模块和广播模块来实现,而其中的单播模块和用户信息模块是具有依赖性的,在接收信息的时候又有两个模块来完成,一是信息接收的模块,另一个是信息查看的模块。

由此可以看出本模块主要分为两模块:发送模块和接收模块。发送模块:单播模块,广播模块,用户信息模块,信息记录模块接收模块:接收信息模块,查看信息模块

综上所述,系统的架构图为:

文件传输模块的主要流程图

由于本模块采用C/S架构故将系统运行载体分为两个部分:客户端与服务器端。文件传输需要建立有效的连接后,通过TCP/IP协议实现点对点的文件传输。通信双方是通过三次握手建立连接,实现文字、文件传输,最后关闭套节字连接。其传输的整个流程图如下:

系统的主要功能模块

由于系统的用户设计是针对的用户日常活动,而非专门从事计算机操作的人员,所以本系统力求界面友好、简单,以便给用户提供一个舒适的使用环境。在文字聊天模块的主要目标是简捷,方便。

为了方便用户选取单个用户进行信息发送和查看在线用户的信息,所以设计了一个ListView来进行显示如图5,在ListView中包括了用户名、工作组、用户级数等。当有用户打开本系统的时候将会向局域网中的所有用户发送一个握手信息来获取网络中的在线用户信息并添加到列表中显示出来,同时也把自己的网络资源信息发送给对方,使自己被添加到其他用户的列表中。

登录界面,如图4所示:

进行发送的,在发送时将会把信息发送给在局域网内部的所有用户包括自己。选择用户并输入发送信息,单播发送的按钮为BitBtn2,主要是通过Id UDP Server和Id UDP Client组件来编写的,由client. Send Buffer语句来发送的,主要是对局域网内部的同一工作组用户发送信息。

广播发送的按钮为BitBtn3,主要是通过Id UDP Server和Id UDP Client组件来编写的,主要是使用了client. Broadcast来对信息,如图5所示:

其中主要的代码为:

void TMsgApp::InitWindow(void)

{

WNDCLASS wc;

HWND hWnd;

char class_name[MAX_PATH] = IPMSG_CLASS, *tok, *msg, *p;

ULONG nicAddr = 0;

int port_no = atoi(cmdLine);

if (port_no == 0)

port_no = IPMSG_DEFAULT_PORT;

if ((tok = strchr(cmdLine, '/')) && separate_token(tok, ' ', &p))

{

BOOL diag = TRUE;

DWORD status = 0xffffffff;

if (stricmp(tok, "/NIC") == 0) // NIC {

if (tok = separate_token(NULL, ' ', &p))

nicAddr = ResolveAddr(tok);

}

else if (stricmp(tok, "/MSG") == 0)

{

MsgMng msgMng(nicAddr, port_no);

ULONG command = IPMSG_SENDMSG|IPMSG_NOADDLISTOPT|IPMSG_NOLOGOPT, destAddr;

while ((tok = separate_token(NULL, ' ', &p)) != NULL && *tok == '/') {

if (stricmp(tok, "/LOG") == 0)

command &= ~IPMSG_NOLOGOPT;

else if (stricmp(tok, "/SEAL") == 0)

command = IPMSG_SECRETOPT;

}

if ((msg = separate_token(NULL, 0, &p)) != NULL)

{

diag = FALSE;

if ((destAddr = ResolveAddr(tok)) != NULL)

status = msgMng.Send(destAddr, htons(port_no), command, msg) ? 0 : -1;

}

}

if (nicAddr == 0)

{

if (diag)

MessageBox(0, "ipmsg.exe [portno] [/MSG [/LOG] [/SEAL] <hostname or IP addr> <message>]\r\nipmsg.exe [portno] [/NIC nic_addr]", MSG_STR, MB_OK);

::ExitProcess(status);

return;

}

}

未完待续

【计算机毕设论文】局域网飞鸽传书软件的设计与实现相关推荐

  1. 基于C语言的局域网飞鸽传书软件设计与实现

    摘 要 网络通讯在当今已经不算新鲜事物,但大多数网络通讯都需要借助Internet上的服务器,这就给那些具有大规模内部网络的用户造成了许多问题,如浪费网络资源.遭遇到网络攻击.传播的病毒.破坏防御系统 ...

  2. [源码和文档分享]基于C语言的局域网飞鸽传书软件设计与实现

    摘 要 网络通讯在当今已经不算新鲜事物,但大多数网络通讯都需要借助Internet上的服务器,这就给那些具有大规模内部网络的用户造成了许多问题,如浪费网络资源.遭遇到网络攻击.传播的病毒.破坏防御系统 ...

  3. 【免费毕设】JAVA局域网飞鸽传书软件设计与实现(源代码+论文)

    文章目录 目录 一.系统设计 二.系统实现 源文件 目录 一.系统设计 本系统主要分为文字聊天和文件传书两大部分.所以本论文将把系统分成两大模块来介绍. 4.1 文字聊天模块的整体构架 本系统文字聊天 ...

  4. JAVA局域网飞鸽传书软件设计与实现免费

    1 系统设计 本系统主要分为文字聊天和文件传书两大部分.所以本论文将把系统分成两大模块来介绍. 4.1 文字聊天模块的整体构架 本系统文字聊天是采用C/S结构,所以每个客户端也是作为服务器端的,当系统 ...

  5. JAVA局域网飞鸽传书软件设计与实现免费源代码+LW

    4.1 文字聊天模块的整体构架 本系统文字聊天是采用C/S结构,所以每个客户端也是作为服务器端的,当系统发送信息给局域网的用户,主要由单播模块和广播模块来实现,而其中的单播模块和用户信息模块是具有依赖 ...

  6. JAVA局域网飞鸽传书软件设计与实现

    本文的目标是设计一个类似飞鸽传输的局域网通信软件,并分析它在其领域的优势.本设计以C编 写,能在windows 2000/net/xp等环境下运行.设计共分为五大模块,分别是:首先,介绍选题背景及意义 ...

  7. 飞鸽传书软件测试工资,飞鸽传书软件设计与测试(终稿).doc

    飞鸽传书软件设计与测试(终稿) 飞鸽传书软件的设计与测试 摘 要 网络通讯在当今已经不算新鲜事物,但大多数网络通讯都需要借助Internet上的服务器,这就给那些具有大规模内部网络的用户造成了内部网络 ...

  8. 计算机使用方法的书,是否知道飞鸽传书软件的详细使用方法?查看介绍

    相信有些新用户还不会使用飞鸽传书软件,今天就给各位分享关于飞鸽传书软件的详细使用方法,快来学习吧. 飞鸽传书软件版本:5.1.180210 官方版网络工具立即查看 一.安装: 下载飞鸽传书2014版安 ...

  9. 飞鸽传书软件很多人都会认为他已经做到了

    而们大家都在这道题上浪费了不少时间.“自信”这两个字看似简单,飞鸽传书软件很多人都会认为他已经做到了,其实不然,自信也需要胆量,而只有鼓起勇气实践过几之后,你才可能真正自信起来.河南南阳唐河县城关一初 ...

最新文章

  1. 第1次作业+105032014074
  2. sqlite 增删改查附代码
  3. python高级编程装饰器_Python装饰器
  4. jQuery中的on 和事件委派
  5. 【项目经验】之线程基本知识
  6. 【bzoj2759】一个动态树好题
  7. linux双括号文本比较,Linux Shell 双括号运算符使用
  8. 千万级用户-亿级请求的平台架构演变
  9. linux中逻辑块大小为,Linux 文件系统相关的基本概念
  10. 网络的日常——破解电信光猫后开启NAT接口映射
  11. Swift5使用KVC报setValue:forUndefinedKey
  12. 期货卖出平仓价和买入平仓价(期货平仓价和结算价)
  13. 快递柜管理系统微信小程序-计算机毕业设计
  14. zigbee CC2530 系列教程 12 温度传感器DS18B20实验
  15. Arm电脑出现【GLFWError】WGL: The driver does not appear to support OpenGL问题解决
  16. 获取自己win10系统的产品密匙
  17. Java连rabbitMQ 报错 An unexpected connection driver error occured
  18. Python:同花顺全数据接口
  19. 【渝粤题库】陕西师范大学151213 公司战略与风险管理作业(专升本)
  20. nvm安装使用及卸载

热门文章

  1. Java实现 LeetCode 223 矩形面积
  2. Nginx 内存池剖析
  3. 建筑材料行业 | 官网数字化升级案例分析合集
  4. 批量修改本地文件文件名
  5. d3之网络拓扑图进阶
  6. elementUI resetFields无效原因
  7. 通过BigExcelWriter导出包含数据和图片的excel表,涉及到sheet.createDrawingPatriarch()画图对象,涉及到url转二进制数据
  8. [CVPR2018]Nonlinear 3D Face Morphable Model
  9. 12v转3.3V18V耐压LDO/WT71XX
  10. gitkraken汉化