<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feeds.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feeds.feedsky.com/csdn.net/gantleman" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feeds.feedsky.com/csdn.net/gantleman" type="application/rss+xml"></fs:self_link><lastBuildDate>Sun, 31 Jan 2010 09:54:00 GMT</lastBuildDate><title>Sur的工作日子</title><description>i am suriving</description><link>http://blog.csdn.net/blogrss.aspx?username=gantleman</link><item><title>arp知识整理</title><link>http://blog.csdn.net/gantleman/archive/2010/01/31/5274916.aspx</link><description>首先WpdPack和libnet是必须的sourceforge.net上有两个libnet项目，

一个是旧的2000开始就不维护了一个是新的叫libnet-dev项目。

WinPcap很有名的项目可以找到全中文的开发资料在

http://www.cnitblog.com/CoffeeCat/archive/2008/03/11/34588.html

 

arp的基础知识看ibm文库的

http://www.ibm.com/developerworks/cn/linux/l-arp/index.html#N10037

 

为什么必须要上面两个项目呢因为arp协议本身是一个有漏洞的协议。在windows下是

没有完整的开发arp协议的开发接口，其实也就是win32不建议程序员开发arp相关的底层

协议，其实arp协议也没有什么可以应用开发，唯一的应用可能就是为了攻击的目的。

既然win32没有提供相关的底层网络接口那么只好使用winpcap库和libnet库。

libnet的例子里面有一个arp的工程稍加修改基本可以满&lt;img src=&quot;http://www1.feedsky.com/t1/327889887/gantleman/csdn.net/s.gif?r=http://blog.csdn.net/gantleman/archive/2010/01/31/5274916.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/gantleman/327889887/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/gantleman/327889887/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Sun, 31 Jan 2010 17:54:00 +0800</pubDate><author>Sur</author><guid isPermaLink="false">http://blog.csdn.net/gantleman/archive/2010/01/31/5274916.aspx</guid><dc:creator>Sur</dc:creator><fs:srclink>http://blog.csdn.net/gantleman/archive/2010/01/31/5274916.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/gantleman/rss.aspx</fs:srcfeed><fs:itemid>csdn.net/gantleman/~1323969/327889887/1328511</fs:itemid></item><item><title>可重入的多线程安全交互</title><link>http://blog.csdn.net/gantleman/archive/2010/01/14/5188459.aspx</link><description>重入的交互设计menucmd.cmain(string arg){    pash(arg)    while(1)    {      mixed 条件 = pop(arg)      if(条件不存在)      {        write(&quot;[yes]确定|[no]否定\n&quot;);//弹出对话框向用户收集确认信息      }else if(条件不符合要求)      {             返回否定结果给用户并清空堆栈         return;      }    }      所有条件都成立    执行相应的代码。。。。}每次执行时如果条件为空会依次询问用户执行的条件&lt;img src=&quot;http://www1.feedsky.com/t1/327889895/gantleman/csdn.net/s.gif?r=http://blog.csdn.net/gantleman/archive/2010/01/14/5188459.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/gantleman/327889895/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/gantleman/327889895/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Thu, 14 Jan 2010 09:10:00 +0800</pubDate><author>Sur</author><guid isPermaLink="false">http://blog.csdn.net/gantleman/archive/2010/01/14/5188459.aspx</guid><dc:creator>Sur</dc:creator><fs:srclink>http://blog.csdn.net/gantleman/archive/2010/01/14/5188459.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/gantleman/rss.aspx</fs:srcfeed><fs:itemid>csdn.net/gantleman/~1323969/327889895/1328511</fs:itemid></item><item><title>单元测试函数的编写</title><link>http://blog.csdn.net/gantleman/archive/2010/01/12/5180679.aspx</link><description>&lt;br /&gt;能够进行单元测试的函数条件只有一个就是&lt;br /&gt;函数的数据输入只依赖函数的参数，结果也只依赖函数的返回。&lt;br /&gt;简单的函数&lt;br /&gt;&lt;br /&gt;int add(int i)&lt;br /&gt;{&lt;br /&gt;     return i + +;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;这个函数将参数i加一然后返回。&lt;br /&gt;&lt;br /&gt;可以编写一个测试函数调用这个函数进行调用输入各种参数简单的判断返回值是否正确。&lt;br /&gt;&lt;br /&gt;考虑如下函数&lt;br /&gt;&lt;br /&gt;void add()&lt;br /&gt;{&lt;br /&gt;      int i;&lt;br /&gt;      i = readformdata();&lt;br /&gt;      i ++;&lt;br /&gt;      settodata(i);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;这个函数也可以写测试函数但要相对复杂，数据的输入要先设置data&lt;br /&gt;伪代码如下：&lt;br /&gt;void test()&lt;br /&gt;{&lt;br /&gt;     for(int i=0;i &lt;br /&gt;     {&lt;br /&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/327889896/gantleman/csdn.net/s.gif?r=http://blog.csdn.net/gantleman/archive/2010/01/12/5180679.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/gantleman/327889896/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/gantleman/327889896/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Tue, 12 Jan 2010 11:11:00 +0800</pubDate><author>Sur</author><guid isPermaLink="false">http://blog.csdn.net/gantleman/archive/2010/01/12/5180679.aspx</guid><dc:creator>Sur</dc:creator><fs:srclink>http://blog.csdn.net/gantleman/archive/2010/01/12/5180679.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/gantleman/rss.aspx</fs:srcfeed><fs:itemid>csdn.net/gantleman/~1323969/327889896/1328511</fs:itemid></item><item><title>转贴几本历史书</title><link>http://blog.csdn.net/gantleman/archive/2010/01/09/5163025.aspx</link><description>１. 《DOOM启世录》 http://www.china-pub.com/195134&amp;ref=ps讲述卡马克怎么从无到有创建一个doom的精彩世界，他的专注值得我们学习 ２. 《Borland 传奇》 http://www.china-pub.com/19118&amp;ref=ps开创IDE新纪元的一代天才们的经历。  ３. 《苹果传奇》 http://www.china-pub.com/817920&amp;ref=ps苹果是怎么发展的？它为啥可以成为市值前几的公司　？ ４. 《观止》 http://www.china-pub.com/195452&amp;ref=psWindows 操作系统开发过程中不为人知的故事。连着读了观止和doom启示录，翻了翻苹果传奇。又把win2000的代码翻出来看了看，下了quake的代码看了看。单从代码风格&lt;img src=&quot;http://www1.feedsky.com/t1/327889897/gantleman/csdn.net/s.gif?r=http://blog.csdn.net/gantleman/archive/2010/01/09/5163025.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/gantleman/327889897/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/gantleman/327889897/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Sat, 09 Jan 2010 07:47:00 +0800</pubDate><author>Sur</author><guid isPermaLink="false">http://blog.csdn.net/gantleman/archive/2010/01/09/5163025.aspx</guid><dc:creator>Sur</dc:creator><fs:srclink>http://blog.csdn.net/gantleman/archive/2010/01/09/5163025.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/gantleman/rss.aspx</fs:srcfeed><fs:itemid>csdn.net/gantleman/~1323969/327889897/1328511</fs:itemid></item><item><title>管中窥豹---eAthena介绍</title><link>http://blog.csdn.net/gantleman/archive/2009/12/28/5088901.aspx</link><description>mudos到传奇一路走来网游差不多快15个年头了吧。从最早的商业版本游戏传奇的泄露到ro2的服务器泄露，网游的服务端架构已经日趋成熟平均在线人数都在千人以上。eAthena（雅典娜计划）是根据ro2服务端改写而成，按现在的市场上的商业产品分类r02比传奇其实高不了太多，属于2D版本的游戏，但相比传奇是从一个单机版计划转为网络游戏的过渡期。ro2是纯粹的网络游戏设计从一开始就是面向网络的。我估计ro2成熟度相对欧美一流公司仍然有一代左右的差距。和国内某些自开发版本的网游技术成熟度是相当的。相对于一个新技术网络游戏的核心技术一直是商业公司的机密难得有机会管中窥豹。因其代码放在服务端又加上重重的保密措施，这次的泄漏事件向我们展示较新的商业版本。前面说过eAthena的技术已经比较成熟的无论2D或3D就架构而言差距不会太大，服务端主要是数据的组织的整理。eAthena分为3大部分加上若干的工具。3大部分主要是char--主要负责快速存储数据相当于内存数据库。login--负责登陆和退出维护加密帐户。map--主要的游戏服务器以地图作为管理的边界是比较先进的理念了 。工程内还有其他的&lt;img src=&quot;http://www1.feedsky.com/t1/327889898/gantleman/csdn.net/s.gif?r=http://blog.csdn.net/gantleman/archive/2009/12/28/5088901.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/gantleman/327889898/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/gantleman/327889898/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Mon, 28 Dec 2009 08:58:00 +0800</pubDate><author>Sur</author><guid isPermaLink="false">http://blog.csdn.net/gantleman/archive/2009/12/28/5088901.aspx</guid><dc:creator>Sur</dc:creator><fs:srclink>http://blog.csdn.net/gantleman/archive/2009/12/28/5088901.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/gantleman/rss.aspx</fs:srcfeed><fs:itemid>csdn.net/gantleman/~1323969/327889898/1328511</fs:itemid></item><item><title>为何项目文档如此的少</title><link>http://blog.csdn.net/gantleman/archive/2009/12/21/5051263.aspx</link><description>&lt;br /&gt;最厌恶写文档因为一做为程序员我理所当然的认为文档是产品写的，如果我没有按产品写的文档去做他们又会到老板哪去告小黑状。二这个程序写出来不想被人说说点点，所幸多一事不如少一事。三文档对公司管理层来说毫无用处，也没有任何人来看写了也是白写。四写文档的时间还不如把程序写完更能让老板心花怒放。其实文档很简单人人都可以写，文档也不简单写出来就等于放到了台面上让人一缆无余。不成熟的文档会被小人拿来大做文章恶言相向，写的好了没有做出来又会被老板拿住口实指为徒有其表。国人大多喜欢沉默计划的沉默成功了也沉默，就是喜欢闷声发大财。其实文档很简单做一个wiki把现有的系统文档都摆上去，将来要做的，正在做的，已经做好的入了项目的。将来要做的可能只是项目经理的一句话：今儿我开了个条目，***把条目的内容补全。想象如果后面程序员一溜的跟贴：这丫的什么条目跟**冲突了赶紧删了吧。或者说***的内容这漏什么，哪缺了什么什么。项目经理把***这个倒霉蛋拎出来一顿海扁，说：你写的*****让人都骂我的脸上好无光扣半年奖金，回去重新写。这说明把不成熟的东西放到阳光下很容易被人说不尤其是多年工作的老滑头。而已经成熟&lt;img src=&quot;http://www1.feedsky.com/t1/327889899/gantleman/csdn.net/s.gif?r=http://blog.csdn.net/gantleman/archive/2009/12/21/5051263.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/gantleman/327889899/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/gantleman/327889899/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Mon, 21 Dec 2009 23:07:00 +0800</pubDate><author>Sur</author><guid isPermaLink="false">http://blog.csdn.net/gantleman/archive/2009/12/21/5051263.aspx</guid><dc:creator>Sur</dc:creator><fs:srclink>http://blog.csdn.net/gantleman/archive/2009/12/21/5051263.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/gantleman/rss.aspx</fs:srcfeed><fs:itemid>csdn.net/gantleman/~1323969/327889899/1328511</fs:itemid></item><item><title>面向对象不单单就是继承</title><link>http://blog.csdn.net/gantleman/archive/2009/12/19/5038649.aspx</link><description>&lt;br /&gt;当提到面向对象的方法重用人们往往最先想到的是继承。近年来模版的出现恰恰是因为继承并不是最自然的复用方式。最自然的复用方式是函数，不同的数据进入方法按规则得到不同的结果。模版的出现扩大的这种自然继承的方式，可以通过模版让不同类型的数据参与到运算。好比继承是通过你父母学到新技能，函数是通过观察总结出某个方法是否可以使用，取为己用。或许一套数据使用一套方法，但也有一个方法用于多种数据的情况。不可否认的虽然现实中每个人都有唯一的身体，四肢。思想个个不同，虚拟的世界里这身体和四肢每个人都是一样的，完全可以按一套代码来写。可以写一个叫手的函数给所有的人使用。那么我们除了继承还有拜师，还有器官移植，还有更多的其他的复用方式。也时我们的面向对象应该回归到它最初的单纯，只是数据的面向对象。方法用面向对象的方式组织不见得是个好主意也许更像是画地为牢。&lt;img src=&quot;http://www1.feedsky.com/t1/327889900/gantleman/csdn.net/s.gif?r=http://blog.csdn.net/gantleman/archive/2009/12/19/5038649.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/gantleman/327889900/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/gantleman/327889900/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Sat, 19 Dec 2009 15:24:00 +0800</pubDate><author>Sur</author><guid isPermaLink="false">http://blog.csdn.net/gantleman/archive/2009/12/19/5038649.aspx</guid><dc:creator>Sur</dc:creator><fs:srclink>http://blog.csdn.net/gantleman/archive/2009/12/19/5038649.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/gantleman/rss.aspx</fs:srcfeed><fs:itemid>csdn.net/gantleman/~1323969/327889900/1328511</fs:itemid></item><item><title>钻牛角尖的优化</title><link>http://blog.csdn.net/gantleman/archive/2009/12/19/5037742.aspx</link><description>&lt;br /&gt;前段时间有点钻牛角尖了，多线程的并发用超复杂的逻辑架构避免数据的互锁。是在理想情况下不太可能完成的任务。数据只有相互关联才有程序运行的意义。用逻辑上的优秀架构避免数据的互锁是追求的最完美但这个世界有太多的不完美。也许应该调整下目标，把多线程并发定位到可以在最大限度发挥硬件效率，程序可以恰当的等待和顺利安全的运行。多cpu的效率是肯定高于单cpu的尤其在可并发的逻辑运算层面。&lt;img src=&quot;http://www1.feedsky.com/t1/327889906/gantleman/csdn.net/s.gif?r=http://blog.csdn.net/gantleman/archive/2009/12/19/5037742.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/gantleman/327889906/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/gantleman/327889906/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Sat, 19 Dec 2009 13:08:00 +0800</pubDate><author>Sur</author><guid isPermaLink="false">http://blog.csdn.net/gantleman/archive/2009/12/19/5037742.aspx</guid><dc:creator>Sur</dc:creator><fs:srclink>http://blog.csdn.net/gantleman/archive/2009/12/19/5037742.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/gantleman/rss.aspx</fs:srcfeed><fs:itemid>csdn.net/gantleman/~1323969/327889906/1328511</fs:itemid></item><item><title>记些杂乱的东西</title><link>http://blog.csdn.net/gantleman/archive/2009/11/29/4901907.aspx</link><description>面向指令-例如input指令加入多线程或多进程技术--使用池技术指令可排队缓冲可调试可中断数据全局化，行为和数据剥离。去掉房间的概念地图逻辑和坐标从逻辑服务器拆分出去。界面的标准化交互数据精简防御性编程的例子任何指令都有必要条件和非必要条件，所有条件在任何时间点满足即满足条件。当对对象执行任何指令时如果对象销毁在程序层面是软件组织方式的错误。在一个多线程游戏服务上对象的销毁是一个正常状态，这时对象的概念已经不是程序组织层面的问题而是游戏架构层面的问题。&lt;img src=&quot;http://www1.feedsky.com/t1/327889907/gantleman/csdn.net/s.gif?r=http://blog.csdn.net/gantleman/archive/2009/11/29/4901907.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/gantleman/327889907/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/gantleman/327889907/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Sun, 29 Nov 2009 22:28:00 +0800</pubDate><author>Sur</author><guid isPermaLink="false">http://blog.csdn.net/gantleman/archive/2009/11/29/4901907.aspx</guid><dc:creator>Sur</dc:creator><fs:srclink>http://blog.csdn.net/gantleman/archive/2009/11/29/4901907.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/gantleman/rss.aspx</fs:srcfeed><fs:itemid>csdn.net/gantleman/~1323969/327889907/1328511</fs:itemid></item><item><title>游戏服务器架构简述--逻辑服务器</title><link>http://blog.csdn.net/gantleman/archive/2009/11/24/4866682.aspx</link><description>    最早的商业化的逻辑服务器恐怕是mud系列了，国内的商用服务器大部分都源于此。在以前简单的说过mud，为了支援简单的访问模型mud的网络结构比较简单，没有线程结构。早期的扩展把mud作为了游戏逻辑服务器交互的命令一般通过一个服务器中转到mud.因为和客户端交互的指令已经不限于早期的文字，大量的图片，渲染，甚至声音这些已经不需要mud处理的了。完全可以通过简单的文件压缩然后下发客户端，通过文件名称等方式供逻辑系统调用。提到逻辑系统不得不提到一个概念心跳。目前的mud使用心跳的只是为了在定期的执行一些指令，所有的物件心跳是相同的。有一个很有趣的例子当把所有的指令通过一台服务器发送的到逻辑的服务器时。指令发送的快慢实际变成了服务器时间。传送的快服务执行时间就快传送的慢服务执行时间就慢。服务器的心跳演变成了服务器的时间每一次的脉动服务器时间就加一。但每个人的时间为什么要一样呢。如果不考虑思维一个人单位时间内作的事情多了，他的时间就快了，如果一个人单位时间做的事情少了他的时间也就慢了。如果考虑思维一个人想得多了他的时间也相当于快了。实际不过是人的身体里有好多的时间单位而显得时间&lt;img src=&quot;http://www1.feedsky.com/t1/327889938/gantleman/csdn.net/s.gif?r=http://blog.csdn.net/gantleman/archive/2009/11/24/4866682.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/gantleman/327889938/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/gantleman/327889938/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Tue, 24 Nov 2009 21:43:00 +0800</pubDate><author>Sur</author><guid isPermaLink="false">http://blog.csdn.net/gantleman/archive/2009/11/24/4866682.aspx</guid><dc:creator>Sur</dc:creator><fs:srclink>http://blog.csdn.net/gantleman/archive/2009/11/24/4866682.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/gantleman/rss.aspx</fs:srcfeed><fs:itemid>csdn.net/gantleman/~1323969/327889938/1328511</fs:itemid></item></channel></rss>