即时通讯程序,腾讯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:原理及项目分析相关推荐

  1. winform服务器消息推送,winform项目——仿QQ即时通讯程序12:服务端程序补充及优化...

    原标题:winform项目--仿QQ即时通讯程序12:服务端程序补充及优化 上一篇文章大概完成了服务端程序,今天继续做项目的时候发现还有一些功能没有做,还有几处地方不够完善.不做好就会影响客户端程序的 ...

  2. .net winform panel 不刷新_winform项目——仿QQ即时通讯程序04:登录界面补充

    上一篇文章给出了Login登录界面的详细制作过程,目的是让初学者体验如何对窗体上的控件进行布局,过程非常详细,如果对winform布局不熟悉的同学可以详细阅读.本篇文章将继续完成Login窗体上的注册 ...

  3. delphi 登录界面 主窗体 切换_winform项目——仿QQ即时通讯程序06:主界面交互逻辑...

    上一篇文章,我们搭建好了主界面的布局.本文将实现页面的交互逻辑,比如如何移动窗体.调整窗体大小.点击消息和联系人切换下方的panel面板.动态加载消息列表panel和好友列表panel等,并且左下角的 ...

  4. c# webclient 保存会话信息_winform项目——仿QQ即时通讯程序16:会话列表的存储

    上一篇文章完成了验证消息的接收,这篇文章本打算做好友间互发消息,但是做的时候发现会话列表的存储还没做.就是会话列表中有会话的情况下,关闭了软件,然后再次登录后,应该要复现会话列表.因此本篇文章将实现会 ...

  5. 基于环信的仿QQ即时通讯的简单实现

    代码地址如下: http://www.demodashi.com/demo/11645.html 我的博客地址 之前一直想实现聊天的功能,但是感觉有点困难,今天看了环信的API,就利用下午的时间动手试 ...

  6. C++实现飞鸽传书仿QQ即时通讯软件!(源码打包好了!)

    FreeEIM 仿QQ功能的企业即时通讯软件VC++的源代码,最后更新于2010年8月份,完成数据库更改的任务.将聊天记录改用数据库形式,暂且使用Access. 本软件的窗口和功能都与QQ有点相似,可 ...

  7. java实现即时通信仿qq_java版仿QQ即时通讯系统

    [实例简介] 本系统使用java开发,使用myeclipse和SqlServer数据库,可以实现用户的即时通讯功能 [实例截图] [核心代码] QQ2016 └── QQ2016 ├── 360魔法摄 ...

  8. 【181029】FreeEIM 飞鸽传书仿QQ即时通讯软件VC++源代码

    FreeEIM 仿QQ功能的企业即时通讯软件VC++的源代码,最后更新于2010年8月份,完成数据库更改的任务.将聊天记录改用数据库形式,暂且使用Access. 本软件的窗口和功能都与QQ有点相似,可 ...

  9. 仿QQ即时通讯聊天软件Windows新版可定制客户端演示

    一款跨平台可定制的 P2P 即时通信聊天系统,为电子商务网站及各行业门户网站和企事业单位提供"一站式"定制解决方案,打造一个稳定,安全,高效,可扩展的即时通信系统,支持在线聊天.视 ...

最新文章

  1. SqlSugar ORM 入门到精通【一】入门篇
  2. 风控评分模型全流程的开发及应用
  3. centos7下安装低版本mysql_centos7下使用yum安装制定版本mysql
  4. html的绝对定位脱离文档流吗,子元素设置绝对定位之后脱离文档流!
  5. 【深度学习】Tensorflow的基本操作
  6. oracle 导入sql文件 汉字乱码_将现有的sql脚本导入 Oracle 数据库,中文乱码问题...
  7. python的开发环境包括_下搭建 Python 开发环境
  8. anaconda查看删除增加镜像源
  9. WebStorm功能特点以及使用指南
  10. u盘扩容盘用什么软件测试,如何检测所购买的U盘是否为扩容盘?
  11. 三星为什么能超越SONY在世界崛起?
  12. 过去分词和动词过去式区别
  13. AOP设计与原理(连接点,切入点与代理模式)——Spring AOP(二)
  14. 设计模式知我所见。。。
  15. 设计一个长方形的类,成员的变量有长与宽,成员函数要求周长与面积,然后进行测试。
  16. iOS提交应用至App Store流程
  17. 深入理解Windows域概念
  18. Rstudio必用快捷键
  19. 阅文集团内容中心id生成器的设计与实现
  20. 对MySQL查询结果进行替换

热门文章

  1. 阿里2020届校招笔试劝退题——你大爷还是你大爷
  2. 视频人脸检测——OpenCV版(三)
  3. C语言结构体的应用——万年历
  4. XML文件的写入和读取(解析)基于DOM4J工具
  5. JQuery Datatables editor 行内编辑功能
  6. leetCode —— 1200.最小绝对差
  7. 计算机数据与安全课件,计算机数据及软件的安全.ppt
  8. scala与java的区别_Scala学习笔记及与Java不同之处总结
  9. 计算机有必要报英语四级吗,我已工作了,现在有必要去考英语四级吗?还是 – 手机爱问...
  10. 服务器放行6in4协议,最简单的接入IPv6网络的方法 – 6in4隧道