互联网 频道

珊瑚虫该不该推出“显隐身”功能?


三、LumaQQ对“强制显示QQ隐身好友”实现原理的解释

    关于LumaQQ是如何将QQ隐身好友“打回原形”的,如果你是程序员出身,可以直接去研究一下LumaQQ的源代码,源代码可以到http://lumaqq.linuxsir.org/main/?q=node/71下载获得。

    其技术原理,LumaQQ的开发者,一位来自清华的高手Luma,在其开发文档(http://lumaqq.linuxsir.org/main/?q=node/view/74)中以一篇题为“如来神掌为什么只要10块钱”的文章(原文在:http://lumaqq.linuxsir.org/article/rulai.html)给了简单的解释。(相关文章:【软话连篇】有关挂QQ的荒唐事!

    让我们看看Luma是如何实现这一功能的,以下部分摘抄自LumaQQ开发文档:

    何谓神掌

    神掌为什么能探测隐身?这是很多人想知道的问题,其实很简单,为什么很简单而不是很复杂?因为如来神掌只卖10块钱,10块钱的东西能复杂吗?哦,错了,好像说了等于没说哈?那我给你看看如来神掌的主要实现代码,就知道为什么只卖10块钱了:

    /**
     * 探测对方是否隐身,如来神掌,万无一失
     */
    public void detectHidden(int receiver) {
        if(user.isLoggedIn()) {
            SendIMPacket packet = new SendIMPacket(user);
            packet.setMessageType(QQ.QQ_IM_UDP_REQUEST);
            packet.setReceiver(receiver);
            packet.setTransferType(QQ.QQ_TRANSFER_FACE);
            packet.setFileName("");
            packet.setFileSize(0);
            packet.setFakeIp(true);
            monitor.putRequest(packet);
            port.add(packet);
        }
    }

    有的人看了之后,就以为如来神掌是传一个0字节大小的文件,这当然是不对的,传文件的话,如果对方不接受,又有什么用呢?就好像网上曾经流行的发视频请求去探测隐身一样,如果别人不接受,那又有什么用呢?所以如来不能这么做,如来确实是要传东西,但是如来要传一个对方在线就无法拒绝的东西。  点击查看发表评论>>>

    QQ里面什么东西是你无法拒绝的,显然有一个:自定义表情。你隐身的时候,你的好友给你发自定义表情,你能拒绝吗?不能。自定义表情能不能传过来,那是另外一回事,并不影响如来神掌,为什么,后面给你解释。(相关文章:十大幻想:腾讯QQ之精彩未来世界!

    QQ的文件传输

    文件传输有很多情况,可以直连,也可以通过服务器中转,还有什么UDP,TCP方式之分。但是一开始的时候是一致的:我要先发传送请求,然后对方会回答接受还是拒绝。刚才说过了,自定义表情是没有机会让你去拒绝的,所以,只要对方在线,我就会收到回复包。


0
相关文章