我花了半年时间完成的模仿MSN 6.2界面的聊天软件刚刚发布,主页是
http://myicq.cosoft.org.cn,或者http://cosoft.org.cn/projects/myicq
网页上有软件的屏幕截图。虽然现在功能已经很强大了,但是还有很多想到的功能没有时间去做。
希望真正有能力,对即时通讯有兴趣的朋友能够加盟我们!LinQ的设计非常漂亮,完全建立在插件的基础上,因此扩展起来很容易,也很容易维护。现在已经实现的比较吸引人的功能有:- 支持以SSL/TLS方式登录以及SASL身份验证,完全保证您的通讯安全。
- 目前支持SOCKS5以及HTTPS代理服务器连接方式
- 联系人列表以及分组信息全部存储在服务器上,您再也不用为更换电脑而找不到联系人而担忧了
- 可以定义:用户在联机状态时,不能看到我的状态的联系人列表;以及用户在隐身模式下,仍然能看到我的状态的联系人列表
- 在消息中内嵌任意大小的图片,并且可以在接收方聊天窗口中显示出来
- 可以选择任意的聊天窗口背景,并且与好友共享 (chatcontext.dll)
- 选择一张代表您自己的图片,并且可以显示在对方的聊天窗口中 (avatar.dll)
- 传输文件时支持断点续传
- 音频/视频聊天 (audiochat.dll, videochat.dll)
- 对方键入消息通知:您可以知道对方是否在准备向您发送消息 (chatstate.dll)
- 可以通过下载更多的图释集合,以扩展可以在消息中插入的表情符号
- 类似于ICQ的悬浮式窗口 (floatwnd.dll)
- 可以将聊天记录保存为RTF文档
- 推荐/发送一个或多个联系人给好友。好友收到后,可以选择是否将他们加入到自己的联系人列表中 (RosterExchange.dll)
- 通过服务端组件proxy65,客户端之间的点对点连接(传输文件等)可以穿越几乎任何防火墙。
打算近期实现的功能有:开发计划
======================
- 开发服务端组件(s2s),使得在不同服务器上注册的用户可以互通消息。
- 功能十分强大的群组聊天,各种角色权限的设置近乎完美。
- 文件共享
- 远程桌面控制
- SOCKS4以及HTTP Polling方式的代理支持
- 聊天记录管理器
- 支持UNICODE
- 支持Win98
- 发布英文版以及其它语言的版本

解决方案 »

  1.   

    1,请问你的界面是用什么开发的?VC?还是别的SKIN SDK?
    2,请问你的音视频基于什么?DirectX还是别的?每秒多少流量?什么压缩?
    谢谢
      

  2.   

    To MissYouChenMin,1. 我的程序是用VC++开发的,自己从头写的一套界面库。服务端可以运行在Unix上,是用autoconf/automake/g++开发的。
    2. 音频现在采用G.729, 视频是H.263,用的是Windows的vfw
      

  3.   

    原来是大侠啊,近来在看你的很旧以前的MyICQ1.0,有个地方比较迷惑,能给我解释一下?bool UdpSession::setWindow(uint16 seq)
    {
    const int SEQ_WIN_SIZE = 32;

    // 1 
    int d = seq - recvSeq;
    if (d < 0)
    return false;

    // 2
    if (d == SEQ_WIN_SIZE) {
    do {
    ++recvSeq;
    window >>= 1;
    } while (window & 0x01); d = seq - recvSeq;
    }

    // 3
    if (!d) {
    do {
    ++recvSeq;
    window >>= 1;
    } while (window & 0x01); return true;
    }

    // 4
    uint32 mask = (1 << d);
    if (window & mask)
    return false; window |= mask;
    return true;
    }这样做是否想实现批量提交和批量确认?在我的局网测试中只有 代码块3(第1次登录) 和 代码块1(以后算重复包)
    代码块2和代码块4重未执行过。能解释下你的想法吗, 最好能注释一下?
      

  4.   

    通过服务端组件proxy65,客户端之间的点对点连接(传输文件等)可以穿越几乎任何防火墙。
    proxy65组件得原理能否告诉大家?
      

  5.   

    申请...
    从事IM相关应用网络部分...
    mail: [email protected]
      

  6.   

    非常感谢大家对于LinQ的兴趣,我先答复一下大家的问题:to k1888,
    那部分代码是用来判断是否收到了重复的UDP数据包的。类似于一个滑动的窗口,所以函数名字叫做setWindow:-)to gracezhu(uutom),
    proxy65的原理很简单,就是在客户端之间无法建立tcp或udp连接的情况下,由这台服务器中转发送。
      

  7.   

    我也想加入,怎么加呀?我的MSN:[email protected]
      

  8.   

    "proxy65的原理很简单,就是在客户端之间无法建立tcp或udp连接的情况下,由这台服务器中转发送。"如果客户太多,请问这个压力怎么解决?
      

  9.   

    LinQ是我原来开发的MyICQ的后续版本,经过代码的完全重写,
    软件结构已经非常完美(我自己认为8-)。因为采用XMPP/Jabber协议,
    在网络协议上也非常灵活。我们现在不提供LinQ-3.0.0的源代码。不过说实话,我很想open source
    出来与大家分享,毕竟大家互相交流才能进步阿。可是一想到MyICQ
    公开源代码以后被人家盗用的情况我就会心寒,有的人甚至没有对MyICQ
    进行任何修改就把作者的名字给换掉了。而且,我也想通过LinQ挣一些钱
    (没办法,我们中国人就是穷阿)。如果在国外做出一个很有名气的开源软件的话,一定会有商家来捐助的,
    可是在中国是绝不可能的。
    希望大家能帮我想出一个既open source,又能有效的防止别人盗用,还
    能挣到钱的方法:-)。
      

  10.   

    楼主你好!
    最近我也在查找Jabber 的资料,对IM即时通讯很有兴趣。希望能一起合作开发,申请中。
    本人QQ:4370307
      

  11.   

    To Pandona,可以通过在服务端运行多个proxy65的实例,分别在不同的端口或者不同的服务器上运行,来解决负载的问题。不过我觉得这部分不是很重要,因为毕竟proxy65只是一个可选的组件!
      

  12.   

    现在打算在JabberD2或Jabberd14的基础上改造,因为jabber2还不是很稳定,虽然程序组织的架构很好。另外,需要考虑的问题还很多,希望能一起探讨、学习、提高。
      

  13.   

    申请加入 虽然我没有做过IM,可是我有超强的热情,QQ(2528094)
      

  14.   

    谢谢大侠的回答,我大概清楚setWindow的意思,我现在准备实现1种 UDP 超时重发和批量发送和批量Ack的算法,你的方法我想参考参考,我想问一下你的算法在Internet上是否能很好地解决问题?你后来做过改进吗?还有,为什么好多IM都做成TCP(如Jabber,MSN,RTX),UDP的快速和方便的P2P实现为什么不考虑?
      

  15.   

    to tkutt():
    我觉得jabberd2做得挺糟糕的。希望我们能一起探讨jabberto Pandona:
    我在北京,你呢?to kl888():
    我觉得这种方法能很好的解决问题(至少没出过什么大问题:-),我后来没有再改进过了,LinQ现在是TCP. 我个人认为UDP虽然效率高,可是有很多问题不好解决。LinQ的视频/音频插件就是用的UDP。
      

  16.   

    还有,为什么好多IM都做成TCP(如Jabber,MSN,RTX),UDP的快速和方便的P2P实现为什么不考虑?
    ------------------------------------------------------------------------------
    当初我也是为了是用TCP还是UDP费了好大的脑筋
      

  17.   

    怎么和楼主联系?
    昨天写了封email也不知道地址对不对。
    楼主可以发csdn站内短信或QQ告知,很高兴找到同行者:)
      

  18.   

    正在学习中,希望高手指导,本人MSN:[email protected]
      

  19.   

    不过有个想法,我感觉你不应该完全模访MSN,也应该自己创新些东西!:)
      

  20.   

    to clack234(Byron),的确,我在有意的模仿MSN,不只是界面,在功能上也和MSN差不多。
    不过我还有很多想法没有来得及实现,而且迟早那些MSN的图标也是要被换掉的
    我10.1要去苏州玩,先放松七天,回来再全力完善LinQ!
    感谢大家的热情参与和对LinQ的兴趣,谢谢!
      

  21.   

    我这里有个QQ群4152871,是专门讨论P2P和视频等相关的网络变成的。大家可以一起讨论一下。
      

  22.   

    FREEMAN你的视频传输是怎么控制的?使用了缓冲器么?
      

  23.   

    我对IM很有兴趣楼主的MyIcq也曾看过!强人呀!
      

  24.   

    楼主,是否可以增加H.323支持?我现在正在做这方面的东西,也许可以探讨一下。关于服务器,我们公司正准备托管一台,到时候可以做为测试用的,:)。我的联系方式,msn:[email protected]
      

  25.   

    楼主如果真想做好 除了具备msn或qq已有主要的功能
    关键是要有自己的特点和创新
    我没有做过im软件 不过我也在做网络通信的软件
      

  26.   

    张勇,你好!我是张洪禹, 我在刚才给你于163的信箱发了一封EMAIL。
    信中详附了我的一些想法和联系方式。 请与我联系。
      

  27.   

    . 我的程序是用VC++开发的,自己从头写的一套界面库。服务端可以运行在Unix上
    运行在SCO UNIX上吗?有什么特殊要求啊
      

  28.   

    读写socket不同步的问题如何解决,就是说如果往服务器写的速度过快而服务器读的过慢,是否有些来不及读而丢失?谁解答一下?多谢
      

  29.   

    我vc用过多年了,技术还可以,如果可能的话,看看能不能帮你做些什么!
    MSN:[email protected]
      

  30.   

    牛!只是缺少点创新。聊天界面背景好像做的没有MSN好
      

  31.   

    目前也正在做IM软件
    希望加入
    mail:[email protected]
      

  32.   

    我用VC三年了,好像不如你这半年有成就感!
    需要的话我也来帮忙。
    [email protected]
      

  33.   

    建议你在sourceforge.net上建立project,不要在国内!毕竟共创和sourceforge相比差的太远,---简直没法比!