winform项目_winform项目——仿QQ即时通讯程序01:原理及项目分析
即时通讯程序,腾讯QQ可以说是一家独大,虽然市场上仍然有类似QQ的即时通讯程序,但是基本上面向的对象都是特定人群。那么,现在做一个即时通讯的软件还有意义吗?在我看来,意义非常大。作为一个学习编程的人,整天和电脑、互联网打交道,而互联网最大的作用就是信息传递,如果能够做出自己的即时通讯软件,不仅能够增加编程技术经验,更能深深体会互联网信息传递的奥妙。
接下来几天,我将会分多个文章来做这个项目,有兴趣的小伙伴可以按照文章中的步骤一起做。做这个项目你需要会这些技术:
1.winform
2.SQL Server
今天这篇文章,我们就先来进行项目分析。
在进行分析之前呢我们要先讲一下即时通讯软件的原理。
即时通讯,即用户A给用户B通过网络发送消息,用户B通过网络接收到消息。如果不考虑互联网的诸多限制,那么每个用户只需要一个客户端在手中就行了,用户与用户之间就是单线联系,但是呢因为公网IP资源有限,我们客户端设备手机、电脑等一般都不是直接连接的互联网,而是连接的运营商划分的局域网当中, 而两台不同局域网的设备一般是不能穿透中间的互联网直接访问的,所以呢,问题就出在这里,既然都可以访问互联网,那么在互联网上加一个中间商,消息呢就都先发送给这个中间商,由它来帮忙转发一下消息,这样就能实现A和B之间的通信了。
那么这个中间商就是即时通讯软件的服务端。功能分析
根据用户操作步骤,我们可以将软件划分如下几种功能:
一、客户端
1.用户注册:基本资料的填写,由系统随机生成账号id
2.用户登录
3.用户资料初始化:
初始化用户资料,比如头像、昵称、个性签名、好友等
初始化好友列表:获取好友在线状态
初始化验证消息
4.查找并发送添加好友请求
5.同意好友验证
6.好友间互发消息:历史记录保存在本地
二、服务端
1.消息转发:即时通讯系统的核心功能
2.日志记录:记录所有用户的上线、下线操作;
暂时就先定下这些功能,后面做的时候如果有想不到的再补充,下一篇文章就是进行数据库的分析与设计了。
本文系小博客网站原创,转载请注明文章链接地址
winform项目_winform项目——仿QQ即时通讯程序01:原理及项目分析相关推荐
- winform服务器消息推送,winform项目——仿QQ即时通讯程序12:服务端程序补充及优化...
原标题:winform项目--仿QQ即时通讯程序12:服务端程序补充及优化 上一篇文章大概完成了服务端程序,今天继续做项目的时候发现还有一些功能没有做,还有几处地方不够完善.不做好就会影响客户端程序的 ...
- .net winform panel 不刷新_winform项目——仿QQ即时通讯程序04:登录界面补充
上一篇文章给出了Login登录界面的详细制作过程,目的是让初学者体验如何对窗体上的控件进行布局,过程非常详细,如果对winform布局不熟悉的同学可以详细阅读.本篇文章将继续完成Login窗体上的注册 ...
- delphi 登录界面 主窗体 切换_winform项目——仿QQ即时通讯程序06:主界面交互逻辑...
上一篇文章,我们搭建好了主界面的布局.本文将实现页面的交互逻辑,比如如何移动窗体.调整窗体大小.点击消息和联系人切换下方的panel面板.动态加载消息列表panel和好友列表panel等,并且左下角的 ...
- c# webclient 保存会话信息_winform项目——仿QQ即时通讯程序16:会话列表的存储
上一篇文章完成了验证消息的接收,这篇文章本打算做好友间互发消息,但是做的时候发现会话列表的存储还没做.就是会话列表中有会话的情况下,关闭了软件,然后再次登录后,应该要复现会话列表.因此本篇文章将实现会 ...
- 基于环信的仿QQ即时通讯的简单实现
代码地址如下: http://www.demodashi.com/demo/11645.html 我的博客地址 之前一直想实现聊天的功能,但是感觉有点困难,今天看了环信的API,就利用下午的时间动手试 ...
- C++实现飞鸽传书仿QQ即时通讯软件!(源码打包好了!)
FreeEIM 仿QQ功能的企业即时通讯软件VC++的源代码,最后更新于2010年8月份,完成数据库更改的任务.将聊天记录改用数据库形式,暂且使用Access. 本软件的窗口和功能都与QQ有点相似,可 ...
- java实现即时通信仿qq_java版仿QQ即时通讯系统
[实例简介] 本系统使用java开发,使用myeclipse和SqlServer数据库,可以实现用户的即时通讯功能 [实例截图] [核心代码] QQ2016 └── QQ2016 ├── 360魔法摄 ...
- 【181029】FreeEIM 飞鸽传书仿QQ即时通讯软件VC++源代码
FreeEIM 仿QQ功能的企业即时通讯软件VC++的源代码,最后更新于2010年8月份,完成数据库更改的任务.将聊天记录改用数据库形式,暂且使用Access. 本软件的窗口和功能都与QQ有点相似,可 ...
- 仿QQ即时通讯聊天软件Windows新版可定制客户端演示
一款跨平台可定制的 P2P 即时通信聊天系统,为电子商务网站及各行业门户网站和企事业单位提供"一站式"定制解决方案,打造一个稳定,安全,高效,可扩展的即时通信系统,支持在线聊天.视 ...
最新文章
- SqlSugar ORM 入门到精通【一】入门篇
- 风控评分模型全流程的开发及应用
- centos7下安装低版本mysql_centos7下使用yum安装制定版本mysql
- html的绝对定位脱离文档流吗,子元素设置绝对定位之后脱离文档流!
- 【深度学习】Tensorflow的基本操作
- oracle 导入sql文件 汉字乱码_将现有的sql脚本导入 Oracle 数据库,中文乱码问题...
- python的开发环境包括_下搭建 Python 开发环境
- anaconda查看删除增加镜像源
- WebStorm功能特点以及使用指南
- u盘扩容盘用什么软件测试,如何检测所购买的U盘是否为扩容盘?
- 三星为什么能超越SONY在世界崛起?
- 过去分词和动词过去式区别
- AOP设计与原理(连接点,切入点与代理模式)——Spring AOP(二)
- 设计模式知我所见。。。
- 设计一个长方形的类,成员的变量有长与宽,成员函数要求周长与面积,然后进行测试。
- iOS提交应用至App Store流程
- 深入理解Windows域概念
- Rstudio必用快捷键
- 阅文集团内容中心id生成器的设计与实现
- 对MySQL查询结果进行替换
热门文章
- 阿里2020届校招笔试劝退题——你大爷还是你大爷
- 视频人脸检测——OpenCV版(三)
- C语言结构体的应用——万年历
- XML文件的写入和读取(解析)基于DOM4J工具
- JQuery Datatables editor 行内编辑功能
- leetCode —— 1200.最小绝对差
- 计算机数据与安全课件,计算机数据及软件的安全.ppt
- scala与java的区别_Scala学习笔记及与Java不同之处总结
- 计算机有必要报英语四级吗,我已工作了,现在有必要去考英语四级吗?还是 – 手机爱问...
- 服务器放行6in4协议,最简单的接入IPv6网络的方法 – 6in4隧道