在网上搜索了一些资料,谈谈自己对IM即时通讯的理解

IM全称为Instant Messaging,即时通讯,如qq那种的。

现在有两个用户UserA, UserB, 俩人是一个IM通讯软件的好友,UserA登录,服务器读取他的用户名密码,将他的好友列表传送回来,好友列表中有UserB的信息,比如在不在线,如果在线ip地址是什么,端口是多少,这样UserA就可以找到UserB了。

现在UserA想和UserB聊天,如果UserB在线,那么UserA可以通过UserB的ip,端口号等,来与UserB进行信息的交互,貌似这种交互应该使用UDP协议,qq就是这样的。如果不在线,可能由于防火墙或者NAT或者网速差等等原因建立连接很慢,IM服务器就起到作用了,UserA和UserB发送的消息都可以通过服务器进行中转,如果在线,直接发送给对方,如果不在线,那么IM服务器会暂时存储UserA发给UserB的信息,等UserB上线的时候,再发送给他。

以上,基于兴趣,以后有想法实现的时候好好琢磨琢磨。

最新文章

  1. 菜鸟学Android编程——简单计算器《一》
  2. 【转】输入/输出流 - 全面掌握IO
  3. 使用XSD校验Mybatis的SqlMapper配置文件(1)
  4. 关于nandflash与norflash
  5. JSP 相关试题(五)
  6. Mongodb集群搭建及spring和java连接配置记录
  7. Castle Windsor 使MVC Controller能够使用依赖注入
  8. SQL 通配符
  9. c#QQ连连看辅助
  10. js iframe跨域访问
  11. C# winform初学者实例
  12. WebSite---前台系统图片验证码心得
  13. js 计时器小练-20160601
  14. 201521123117 《Java程序设计》第2周学习总结
  15. linux 硬盘
  16. percona-xtrabackup工具实现mysql5.6.34的主从同步复制
  17. PID控制器开发笔记之五:变积分PID控制器的实现
  18. Django学习(5)优雅地分页展示网页
  19. Cocos Creator 的Hello World
  20. 2019.3.15 关于IE

热门文章

  1. 复制对象 copy 与mutable copy
  2. 10.4(java学习笔记)CLOB,BLOB基本操作
  3. Problem Q: 零起点学算法12——求2个日期之间的天数
  4. 由SequenceFile.Writer(key,value)谈toString()方法
  5. Douglas Peucker算法的C#实现
  6. 一个简单的WeakList的实现
  7. Centos7.3 bbc tools安装
  8. Instant Run 的操作影响到了代码,导致Android App启动闪退的问题
  9. springBoot框架的一些概念
  10. mac 安装PyQt5