何谓神掌
神掌为什么能探测隐身?这是很多人想知道的问题,其实很简单,为什么很简单而不是很复杂?因为如来神掌只卖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字节大小的文件,这当然是不对的,传文件的话,如果对方不接受,又有什么用呢?就好像网上曾经流行的发视频请求去
探测隐身一样,如果别人不接受,那又有什么用呢?所以如来不能这么做,如来确实是要传东西,但是如来要传一个对方在线就无法拒绝的东西。这听上去像是霸王
硬上弓,又像是jyb qj smth,日,反抗没用的,闭上眼睛享受吧,唉,好了好了,不谈政治不谈政治了。
QQ里面什么东西是你无法拒绝的,显然有一个:自定义表情。你隐身的时候,你的好友给你发自定义表情,你能拒绝吗?不能。自定义表情能不能传过来,那是另外一回事,并不影响如来神掌,为什么,后面给你解释。
QQ的文件传输
文件传输有很多情况,可以直连,也可以通过服务器中转,还有什么UDP,TCP方式之分。但是一开始的时候是一致的:我要先发传送请求,然后对方会回答接受还是拒绝。刚才说过了,自定义表情是没有机会让你去拒绝的,所以,只要对方在线,我就会收到回复包。
如来神掌的适用条件
有
些人说什么TCP登录啦,用代理啦,或者什么一个局域网之内等等等等是测不到隐身的,这些说法当然是错误的。他们如果测不到,那只能说明他们有人品问题或
者运气很好或者他的网络很糟或者防火墙之类的,总之,是偶然因素造成的。单从原理上分析,如来神掌是适用于所有登录情况的,不管有没有什么代理,不管你
TCP还是UDP,都没问题。因为,注意,我要说因为了,因为什么呢,因为传送请求和对方回复都是通过服务器转发的,这是什么意思,通过服务器转发?简单
哈,意思就是只要你能登录QQ,你就应该能收到我的请求,只要我能登录QQ,我就应该能收到你的回复,所以,如来神掌,万无一失。
但是如来神掌对非TX的QQ是无效的,原因不外乎分三种:
1. 对LumaQQ无效,那是我刻意为之
2. 对iQQ无效,废话,wqfox能不知道怎么回事吗
2. 对OpenQ,isQ,MirandaIM等等的无效,因为他们还不理解自定义表情的协议
如来神掌的局限性
使
用神掌,可能会在对方的QQ上呈现一个上线状态(也不是肯定会出现),但是不会出现上线提示,所以,对方可能发现,也可能发现不了,所以,这个是此功能的
缺点,但是任何武功均有破绽,这个功能既然就是一个武功的名字,则有破绽,可以忍受,顺便说一句,这个名字,我觉得我取的真是太好了。完全和功夫中的含义
一致,10块钱表示它实现简单,同时又威力强大,而且也符合没有完美的武功,也没有完美的程序这一理念。