目录
— 、 概 述 1
1 . 1 设 计 目 的 : 1
1 . 2 设 计 内 容 : 1
1 . 2 . 1 功 能 设 计 : 1
1 . 2 . 2 界 面 设 计 : 1
1 . 2 . 3 客 户 端 、 服 务 器 设 计 : 1
1 . 3 设 计 要 求 : 1
二 、 设 计 任 务 分 析 1
2 . 1 功 能 设 计 分 析 : 1
2 . 2 界 面 设 计 : 1
2. 3 客 户 端 、 服 务 器 设 计 : 1
2 . 3 . 1 客 户 端 设 计 : 1
2 . 3 . 2 服 务 器 端 设 计 : 1
三 、 总 体 设 计 2
3. 1 界 面 设 计 结 果 2
3 . 1 . 1 登 陆 、 注 册 对 话 框 2
3 . 1 . 2 主 界 面 对 话 框 2
3 . 2 客 户 端 程 序 处 理 流 程 图 : 3
3. 3 服 务 器 端 程 序 处 理 流 程 图 4
四 、 程 序 实 现 5
4. 1 消 息 结 构 体 : 5
4 . 1 . 1 消 息 结 构 体 5
4 . 1 . 2 消 息 模 板 : 5
4 . 1 . 3 解 释 : 5
4 . 2 客 户 端 程 序 实 现 : 5
4 . 2 . 1 客 户 端 自 定 义 套 接 字 类 ( 继 承 M F C 抽 象 类 C S O C K E T ) 实 现 : 5
4 . 2 . 2 登 陆 、 注 册 对 话 框 实 现 : 6
4 . 2 . 3 主 对 话 框 实 现 : 7
4 . 3 服 务 器 程 序 实 现 : 10
五 、 运 行 结 果 : 15
5 . 1 登 陆 、 注 册 : 15
5 . 2 消 息 发 送 : 17
5 . 2 . 1 单 发 消 息 : 17
5 . 2 . 2 群 发 消 息 : 18
5 . 3 文 件 发 送 : 19
六 、 心 得 与 体 会 20
6 . 1 遇 到 的 问 题 及 解 决 方 案 20
6 . 1 . 1 服 务 器 如 何 与 多 个 客 户 端 进 行 交 互 ? 20
6 . 1 . 2 : 如 何 实 现 客 户 端 消 息 的 非 阻 塞 式 接 收 ? 20
6 . 2 心 得 与 体 会 : 21
参 考 文 献 : 21
— 、概述
1… 1 设 计 目 的 :
设计一个基于 LAN 的即时通信软件,实现在局域网下可靠的、稳定的即时通信功能以及其从属的附加功能。 1 . 2 设 计 内 容 :
1… 2 . 1 功 能 设 计 :
·实现一对一的单播通信,包括消息发送与接收以及文件的发送与接收;
·实现一对多的多播通信,包括消息的发送与接收;
·附加功能:实现登陆、注册、获取当前在线情况等功能;
1 . 2 . 2 界 面 设 计 :
·客户端的交互界面设计。
1 . 2 . 3 客 户 端 、 服 务 器 设 计 :
·客户端需要完成的功能;
·服务器需要完成的功能;
·客户端、服务器的交互设计;
1… 3 设 计 要 求 :
结合《计算机网络》课程所学的知识以及查阅相应的资料完成相应的设计内容, 且需要保证设计的质量以及程序的可靠性和稳定性。
二、设计任务分析
2… 1 功 能 设 计 分 析 :
·实现一对一的单播、多播通信:
主要运用消息转发技术,需要服务器来处理消息的解析和转发;其中消息的解析包括获取消息的发送者、接收者、类别;本文转载自http://www.biyezuopin.vip/onews.asp?id=15303针对不同的解析结果需要做出不同的响应。
·实现附加功能:
实现登陆、注册、获取当前在线情况等功能;将客户端对附加功能的调用当作特殊的请求消息发送给服务器,服务器解析后做出不同的响应。 2 . 2 界 面 设 计 :
客户端界面需要有较好的交互性,因此需要设计:
·登陆、注册对话框:包括用户名输入框、登陆和注册按钮;
·主界面对话框:包括消息发送编辑框、消息接收显示区、好友在线情况显示区、发送按钮、以及登陆按钮; 2 . 3 客 户 端 、 服 务 器 设 计 :
2 . 3 . 1 客 户 端 设 计 :
·获取客户所发送的消息内容;
·根据客户要求封装消息并发送消息;
·接收服务器发来的消息;
·解析接收的消息并执行对应响应的功能;
2… 3 . 2 服 务 器 端 设 计 :
·获取客户端发来的消息
·解析消息并执行对应的处理
·将处理结果封装成消息发送给指定客户

// MySocket.cpp : implementation file
//#include "stdafx.h"
#include "LanMessage.h"
#include "MySocket.h"#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif/
// CMySocketCMySocket::CMySocket()
{
}CMySocket::~CMySocket()
{
}
void CMySocket::OnReceive(int n)//消息响应处理
{if(dlg->online)//在线才进行响应{mes trans;if(!Receive((void*)&trans,sizeof(trans))){return;}//获取服务器消息CString txt1=trans.from,txt2="在线用户";if(txt1==txt2)//如果是"在线客户"消息{CString show;show.Format("当前用户:%s\r\n%s:%s",dlg->me,trans.from,trans.content);dlg->m_online=show;dlg->UpdateData(false);//刷新主界面}else if(trans.from[0]=='_')//如果是文件消息{CStdioFile put;CString name=trans.from;name=name.Mid(1);//获取文件名if(!put.Open(name,CFile::modeCreate|CFile::modeWrite))//将文件内容存储{ AfxMessageBox("创建文件失败!");return;}else put.WriteString(trans.content);put.Close();}else {//如果是普通消息CString show;show.Format("From %s:%s\r\n",trans.from,trans.content);dlg->m_show+=show;dlg->UpdateData(false);//刷新主界面}}
}
// Do not edit the following lines, which are needed by ClassWizard.
#if 0
BEGIN_MESSAGE_MAP(CMySocket, CSocket)//{{AFX_MSG_MAP(CMySocket)//}}AFX_MSG_MAP
END_MESSAGE_MAP()
#endif  // 0/
// CMySocket member functions
















基于C++的即时通信软件设计相关推荐

  1. 计算机网络课程设计即时通讯,计算机网络课程设计报告-基于LAN的即时通信软件.doc...

    一.概述 1.1 设计目的: 利用MFC编程实现客户端之间通过服务器进行通信. 1.2 设计内容: 网络通信软件的数据通信是通过网络套接字进行的.根据该原理,其编程步骤应分为创建套接字.在套接字上进行 ...

  2. 和java通信_[源码和文档分享]基于JAVA的即时通信软件

    一.设计任务书 1.1 设计任务 本文设计的是一个简单的即时通信软件,利用 Java Socket 进行点到点通信,其工作机制模仿即时通信软件的基本功能,已实现的功能有:客户端登录 客户端退出 群组成 ...

  3. [源码和文档分享]基于JAVA的即时通信软件

    一.设计任务书 1.1 设计任务 本文设计的是一个简单的即时通信软件,利用 Java Socket 进行点到点通信,其工作机制模仿即时通信软件的基本功能,已实现的功能有: 客户端登录 客户端退出 群组 ...

  4. Android即时通信软件设计(一)(网络通信)

    --客户机.服务器连接通信 最近刚做完一个基于Android的即时通信的项目工程,主要完成类似于QQ群的功能.项目涉及的知识面比较广,都是在网络通信上很实用的技术,非常适合初学者学习.其中也是遇到了各 ...

  5. 基于Linux的即时通信软件

    这段时间做了一个比较简单的即时通信软件,就把这个过程记录一下吧,一方面可以加深一下自己对这个项目的印象,另一方面也希望可以帮助到各位正在学习这一块内容的博友!!! 文章目录 代码实现 Client c ...

  6. 基于加密的即时通信系统设计

    1.1. 系统功能概述 根据自己的实际水平,以及即时聊天的流程需求,基于安全的即时聊天系统应该由服务器端模块.客户端模块.RSA加密解密模块.DES加密解密模块.数字签名和验证模块5部分组成. 根据实 ...

  7. 科聊——即时通信软件原型设计

    原型展示地址:科聊 原型设计工具:墨刀 运行环境:Android,Web浏览器(Chrome测试) 安卓下载: 说明:产品原型是整个产品面市之前的一个框架设计,本产品原型对框架结构做出了基本搭建,未注 ...

  8. C语言项目(四)——基于Linux系统下的带有GUI界面的即时通信软件

    二十一.TCP是如何保证可靠数据传输的? TCP提供一种面向连接的.可靠的字节流服务. 面向连接:意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接.在 ...

  9. 基于Java的实时通信软件的设计(类似微信)

    随着互联网和通讯技术的高速发展,用户对于交友软件的需求日益增长.为了满足当下市场对交友软件的需求,提升交友体验,本文提出基于Java开发的即时通讯软件. 本系统的客户端和服务器端都是基于Java语言开 ...

  10. Gprs通信协议服务器,基于GPRS的即时通信系统协议设计与开发

    摘要: 在全球所有的第二代移动通信中,GSM通信网络的使用人数最多,中国目前的大部分移动通信网络都是GSM系统.GSM网络主要用于语音通信,GSM与Internet相结合,出现了GPRS网络,使无线终 ...

最新文章

  1. OpenCV基础知识入门
  2. 无法在WEB服务器上启动调试,Web 服务器配置不正确
  3. luoguP4503 [CTSC2014]企鹅QQ hash
  4. Leetcode1684. 统计一致字符串的数目[C++题解]:字符串O(n^2)简单题
  5. c语言编程数学黑洞,一个数学黑洞——6174
  6. 详细介绍jQuery.outerWidth() 函数具体用法
  7. python 列表比较不同物质的吸热能力_python列表里面根据一定的条件挑选元素
  8. Win11桌面没有图标怎么解决 Win11桌面没有图标解决教程
  9. leetcode - 139. 单词拆分
  10. 洛谷P2770 航空路线问题(费用流)
  11. 5G卡位未来? 万物互联的畅想还是忧伤
  12. thinkphp 捕捉错误
  13. slam十四讲第十讲:找不到 g2o_viewer
  14. 易筋SpringBoot 2.1 | 第三十一篇:SpringBoot Reactor响应式编程实战一
  15. 如何获取大数据行业高薪岗位offer?
  16. java计算机毕业设计化妆品销售网站源码+mysql数据库+系统+lw文档+部署
  17. Be An Effective Engineer
  18. 玩转华为数据中心交换机系列 | 配置基于MAC地址划分VLAN示例
  19. object-c的存取权限(public/protected/private)
  20. 要做研发高手,就是必须能看英文、写英文

热门文章

  1. dockerfile
  2. AI综述专栏 | 多模态学习研究进展综述
  3. php高德地图与百度地图转换,高德地图百度地图坐标相互转换
  4. 计算机与单片机串口程序,51单片机与电脑串口通信,并用数码管显示的两种方法...
  5. python微控制器编程从零开始 开发板_TPYBOARD单片机开发板PYTHON语言控制单片机
  6. linux 格式化磁盘失败,linux格式化磁盘出错
  7. 微信小程序商城开发记录一之需求分析
  8. Premiere Pro 中的键盘快捷键
  9. 计算机磁盘管理 移动硬盘创建盘符,电脑中插入移动硬盘后无法显示分区盘符如何解决...
  10. DSP 增强型脉宽调制ePWM