飞鸽传书安卓版源码(飞鸽传书绿色版)
本文目录一览:
求飞鸽传书VC++源码!
那你可就很难找了啊,以前我上网搜了很多网站根本没有英文注释的,最后还是一个乱码的,没办法,你自己写个算了。
【飞鸽传书软件】 飞鸽传输软件可以局域网内聊天,请问是怎样实现的呢?如果有点吗实现代码
局域网聊天软件飞鸽传书是目前比较流行的局域网即时通讯软件,由于历史悠久,它具有比较多的用户。 因为 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)最关键的是局域网用户列表的建立;飞鸽启动时使用UDP协议向255.255.255.255这个广播地址发送广播包,默认端口是2425。广播包内容包含用户名、工作组、主机名、IP等信息;
已启动飞鸽的用户通过2425端口收到此广播包后,就会在自己的用户列表中添加这个用户的用户名、工作组等信息,同时向对方IP发送本机用户的个人信息;从而双方都能建立起用户列表;(2)刷新用户列表时发送的广播包和启动时差不多,只不过返回的标识信息略有不同;可以做一个小工具,监控2425端口内存流,就能截获刷新和聊天时的消息。(3)传送聊天信息时同样使用UDP协议;由于UDP协议是无连接协议,传输速度快,但是没有确认机制,是不可靠的协议,需要自己定义返回信息的标志来判断对方是否收到信息;(4)用户离线时发送一个离线广播包到255.255.255.255,收到此广播包的用户,根据包中的IP地址(也可能是多种判断标志或者包含硬件标识,比如网卡地址等)删除对方的用户列表信息;
(5)广域网无法直接使用广播方式,靠手工添加"局域网外广播列表"来建立相互的关系;(6)飞鸽传送文件是使用TCP协议,端口2425;其他一些资料:1.飞鸽使用C++语言,开发工具:Visual C++ 4.1, 6.0, or later;2.飞鸽公开源码,在作者(来自日本广岛的白水启章)和汉化者(阿志)网站下载源码,源码注释为日文;可以使用VC++修改、编译;3.飞鸽传书是来自日本的软件,日文版是它的第一版本;此外还有中文,英文,韩文,葡萄牙文等语言;4.飞鸽使用的加密算法:RSA、Blowfish、RC;5.飞鸽可以使用命令行方式发送信息,命令格式如下: ipmsg [端口] /MSG [/LOG][/SEAL] 主机名或IP地址 消息 可以使用IPMsg [端口] 命令改变默认端口,并同时启动多个实例,但是修改后只有使用相同端口的用户才能收到相互的信息;6.飞鸽非安装版,并不是纯绿色软件,直接删除会在注册表留下垃圾键值; * 飞鸽把所有设置信息都保存在注册表的以下位置: \\HKEY_CURRENT_USER\Software\HSTools\ 用户密码以不可逆加密方式存储. * 如果你忘记了密码, 可以在注册表中将此键值删除,清除密码*\\HKEY_CURRENT_USER\Software\HSTools\IPMsgEng\PasswordStr7.飞鸽一次传送文件数达到几千个时,有丢失文件的可能,怀疑是飞鸽的一个bug,而传输大文件则没有问题;8.飞鸽最稳定的正式版本是V2.06;目前v2.50 alpha6 版正在测试,尚未正式发布;其他如2.71,2007绿色版为修改版本,并非正版;
飞鸽传书的源代码,要换页面的?
飞鸽传书 (IP Messenger V2.06)是一款基于 TCP/IP(UDP)的局域网内即时通信软件,2.00以上版本支持局域网内发信息、传送文件、文件夹、多文件(或文件夹),通讯数据采用 RSA/Blofish 加密 (2.00版以上),速度非常快,采用BSD License开源许可协议发布。数据通讯不需要建立服务器、直接在两台电脑间通信和数据传输,支持文件及文件目录的传输,具有安全快捷以及小巧方便等优异特点,因此很多公司都采用它作为部门、公司内部的IM即时通信工具。IP Messenger在程序结构方面采用了Windows SDK处理结构,通信方面采用了TCP/UDP通信方式,在文件传输处理方面采用文件映射技术等。最新版(2.50 alpha6)的Log文件支持 UTF-8编码格式,增加了气球提示。(1)从官方主页 下载IP Messenger的源代码压缩包ipmsg206src.zip,解压缩得到如下图所示的目录;(2)IP Messenger的主要目录及其主要源文件的描述 属性 名称 描述 目录 SRC 工程文件源代码和INSTALL目录 文件 IPMSG.MAK VC++ 4及以前版本使用的工程文件,用来指定如何建立一个工程,VC++ 6把MAK文件转换成DSP文件来处理 IPMSG.MDP 后缀MDP(Microsoft DevStudio Project的简称)是老版本的项目文件,相当于DSP文件 PROT-ENG.TXT 英文版的协议描述 PROTOCOL.TXT 日文版的协议描述 README.TXT 英文版的README README-J.TXT 日文版的README (3)IP Messenger的SRC目录及主要文件属性 名称 描述 目录 INSTALL 安装程序源代码目录 BLOWFISH.CPP 加密算法源文件 BLOWFISH.H 加密算法头文件 BLOWFISH.H2 加密算法随机数头文件 CFG.CPP 系统配置源文件 IPMSG.CPP IPMSG的APP源文件 IPMSG.H IPMSG头文件 LOGDLG.CPP 日志DLG源文件 LOGMNG.CPP 日志处理源文件 MAINWIN.CPP IP Messenger主窗口源文件 MISCDLG.CPP 消息DLG,关于DLG,以及控件子类化等源文件 MSGMNG.CPP Socket管理源文件 PLUGIN.CPP Dll plugin加载源文件 RECVDLG.CPP 接收消息处理源文件 SENDDLG.CPP 发送消息处理源文件 SETUPDLG.CPP IP Messenger属性配置源文件 SHARE.CPP 文件传输接收管理源文件 TAPP.CPP 应用程序类源文件 TDLG.CPP DLG类源文件 TLIST.CPP 链表类源文件 TREGIST.CPP