来自:http://www.freeeim.com/news/onews.asp?id=177

局域网聊天软件飞鸽传书是目前比较流行的局域网即时通讯软件,由于历史悠久,它具有比较多的用户。

因为 FreeEIM 的实现原理和飞鸽传书差不多,希望广大用户了解其原理后,在使用时更加得心应手。
程序启动时先读取用户配置文件,一般是"*.ini"格式,然后,使用Winsock的广播消息给整个局域网发送一个数据包,这时候,如果其他电脑已经运行了飞鸽传书,那么他收到这个包后,会将包的信息读取出来,当然,这个包里有用户的IP,用户名,性别等等。这样,在用户列表里就多了一个用户了。他的用户检查方式就如此简单而已。至于跨网段的实现,只需简单地修改一下广播地址就行了,如果不考虑速度,你可以给整个internet发广播消息。
消息发送,文件传输这些功能,都比较简单,如果你会网络编程,给你对方IP地址,这些功能实现起来再简单不过了。语音、视屏等,只需编写一些语音视频采集代码,传书的话,就像传文件一样。
这里给段广播消息的实现代码吧:
// 发送广播登陆消息
void EM_UserLogin::SendLogin_BC(LPEM_DATA msg)
{
SOCKET m_socket;
m_socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP);
if (INVALID_SOCKET == m_socket)
{
   MessageBox(0, "socket failed.", NULL, MB_OK);
}
SOCKADDR_IN sin;
sin.sin_addr.s_addr = htonl(INADDR_BROADCAST);
sin.sin_family = AF_INET;
sin.sin_port = htons(BROADCAST_SEND_PORT);
BOOL bOpt = TRUE;
if (SOCKET_ERROR == setsockopt(m_socket, SOL_SOCKET, SO_BROADCAST, (char*)&bOpt, sizeof(bOpt)))
{
   // Error occurred
   ::MessageBox(0,"BC setsockopt error.",0,0);
   return;
}
char *tmpBuf = msg->GetBuffer();
if (SOCKET_ERROR == sendto(m_socket, tmpBuf, msg->GetLength(), 0, (PSOCKADDR)&sin, sizeof(sin)))
{
   // Error occurred
   ::MessageBox(0,"BC sendto error.",0,0);
   return;
}
closesocket(m_socket);
}
我们要向QQ、MSN、ICQ、AIM等大型即时通讯看齐,和他们对比,XEIM只是班级里面的一个差生,要赶得上这些优秀的同学,只有付出更大的努力才有可能追上甚至超赶他们。但是,你什么也不做,这会变成一个笑话。

浅谈飞鸽传书实现原理相关推荐

  1. 中国企业飞鸽传书市场

    企业飞鸽传书工具(简称ipmsg:Enterprise Instant Messaging)作为飞鸽传书工具的一个子类,和所有的企业级通讯产品一样从诞生之初就在主流产品的边缘游走,尽管市场中不乏IBM ...

  2. 浅谈:飞鸽传书 的TCP/IP原理

    浅谈:飞鸽传书 的TCP/IP原理,adj  兴趣浓厚的 飞鸽传书:见闻广博的,博识的he is hot in mathematics and chemistry  (他数学和化学极好.)复合词语ho ...

  3. 飞鸽传书谈哈希表之数学原理

    这里的文章是飞鸽传书谈哈希表之数学原理转载的,作者:niniwzw 15:08 2010-5-6 .NET程序员,大多数时候是不需要数学的.因为,有了.NET, 数据结构和算法的重要性被弱化了,操作系 ...

  4. 飞鸽传书:浅谈 Scrum

    前言: 开发中,总是在寻找一种快速有效的开发方式和管理的方式,于是敏捷出来了,XP也出来了,现在Scrum也出来了.一股Scrum狂潮就开始了!本篇主要通过一个例子讲述使用Scrum的一个误区,或者说 ...

  5. 飞鸽传书2007 优化的房子原理

    网站 飞鸽传书2007 优化的房子原理这个我想在蜘蛛侠以前是没有介绍过的,今天我就来和大家一起聊聊.网站刚一上线,飞鸽传书2007[www.freeeim.com]我们首要工作就在于关键词的定位分析, ...

  6. 飞鸽传书(IPMSG)的主要工作原理

    我们知道,飞鸽传书(IPMSG)的主要工作原理在"飞鸽传书抽取.飞鸽传书加工存储.飞鸽传书分析和飞鸽传书展现"这四个环节体现,这是一个完整的端到端的商业智能解决方案.每个环节都有不 ...

  7. 飞鸽传书文件传输实现原理

    飞鸽传书文件传输实现原理,企业即时通讯软件飞鸽传书,是一款基于TCP/IP协议.基于局域网广播消息模式的通讯软件,适合企业或政府部门局域网内部使用.飞鸽传书用户可在企业内部或外部通过该软件进行工作上的 ...

  8. MSN,QQ,IP Messenger,飞鸽传书,的工作原理解析

    MSN,QQ,飞鸽传书,的工作原理解析 http://apps.hi.baidu.com/share/detail/14190263 关键字:MSN,QQ,飞鸽传书,IP Messenger,传文件, ...

  9. 飞鸽传书原理以及相关代码详解

    最近公司事情不是很多,就想起回顾一件做得小项目,跟大家一起学习共享一下. 模拟飞鸽传书来实现相关的功能.首先看下: 飞鸽传书的实现原理: (1)最关键的是局域网用户列表的建立:飞鸽启动时使用UDP协议 ...

最新文章

  1. laravel中Crypt加密方法
  2. knllgobjinfo: MISSING Streams multi-version data dictionary!!! 的一次处理 (二)
  3. IP选路与动态选路协议(六)
  4. 圆锥破碎机常见故障_圆锥破碎机飞车危害大! 7种原因早知道早预防
  5. linux 完全卸载软件方法
  6. RabbitMQ 入门教程(PHP版) 第三部分:发布/订阅(Publish/Subscribe)
  7. 查看表状态及索引碎片语句
  8. 感谢前任程序员赏饭吃!
  9. Spring高级之Spring事务详解(用法、传播行为、隔离级别、只读事务、事务条件)
  10. Redmi Note 8 PRO真机谍照曝光:原谅色开始流行了
  11. python--笔记
  12. 以软件开发生命周期来说明各种测试的使用情况
  13. 【个人笔记】OpenCV4 C++ 快速入门 22课
  14. [LeetCode] 83. Remove Duplicates from Sorted List
  15. 观看杨老师(杨旭)Asp.Net Core MVC入门教程记录
  16. Linux 加密压缩与解压
  17. 如何管理好一个团队 怎样管理好一个团队 如何带领一个团队
  18. Noip 模拟练习9
  19. 【数据分析】数据指标
  20. ubuntu 19.04源

热门文章

  1. python项目之站长素材爬取
  2. 左右伸缩_SSFB梳齿型桥梁伸缩缝安装步骤及使用特性
  3. 计算机的用户控制,我的电脑我做主——Windows账户家长控制-用户账户控制设置...
  4. mysql5.7卸载语句_MySQL5.7完全卸载
  5. 匿名内部类属于局部内部类吗_内部类详解————匿名内部类
  6. 作者:刘建楠(1963-),男,就职于中国石油庆阳石化公司
  7. 【JavaScript】编写一个炫彩的网页时钟
  8. 【Java】欧拉回路的判定
  9. 【Ansible】Ansible控制windows插件安装及运行error与解决方法
  10. UI组件-UITabbarController