﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-waterinfire</title><link>http://www.cppblog.com/waterinfire/</link><description /><language>zh-cn</language><lastBuildDate>Thu, 23 Apr 2026 10:14:34 GMT</lastBuildDate><pubDate>Thu, 23 Apr 2026 10:14:34 GMT</pubDate><ttl>60</ttl><item><title>学习网络编程的十个步骤</title><link>http://www.cppblog.com/waterinfire/archive/2007/05/11/23904.html</link><dc:creator>程序员看世界</dc:creator><author>程序员看世界</author><pubDate>Fri, 11 May 2007 08:14:00 GMT</pubDate><guid>http://www.cppblog.com/waterinfire/archive/2007/05/11/23904.html</guid><wfw:comment>http://www.cppblog.com/waterinfire/comments/23904.html</wfw:comment><comments>http://www.cppblog.com/waterinfire/archive/2007/05/11/23904.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.cppblog.com/waterinfire/comments/commentRss/23904.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/waterinfire/services/trackbacks/23904.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; 经过多年的网络编程实践之后，个人觉得初学网络编程者可以从以下几个步骤开展：<br><br>&nbsp;&nbsp;&nbsp; 1）下载一个可以互动的学习工具，通过这个与这个工具互动，我们可以及时的学到每个api的结果如果。我个人强烈推荐一个互动好工具，即python，下载地址<a  href="http://www.python.org/">http://www.python.org</a> 对于有c/c++或java基础的朋友通过一两个礼拜的时间就可以上手了，另外个人建议初学者可以学习<a  href="http://www.woodpecker.org.cn/diveintopython/">dive into python</a>。<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;  <br>&nbsp;&nbsp;&nbsp; 2）掌握网络编程中会用到的几个基本概念和内涵，比如IP地址，port号，socket等<br><br>&nbsp;&nbsp;&nbsp; 3）记住和消化网络编程C/S模型，把server和client端编程的常用模式理解和消化<br><br>&nbsp;&nbsp;&nbsp; 4）花几天时间学习socket api集，api集可以分为下面几大类：<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;  创建&nbsp;&nbsp;  socket bind listen accept<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;  收发&nbsp;&nbsp;  read/recv/recvfrom&nbsp; write/send/sendto&nbsp;&nbsp;  <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;  关闭&nbsp;&nbsp;  close shutdown<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;  参数&nbsp;&nbsp;  getsockopt/setsockopt<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;  地址&nbsp;&nbsp;  gethostbyaddr getaddrbyhost,...<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 在学习这些api时候，可以先关注在函数功能，参数意义上<br><br>&nbsp;&nbsp;&nbsp; 5）结合python互动平台，实践socket api的用法，比如socket函数怎么使用，bind怎么使用等等。在互动过程中，我们可以变换参数，看看调用结果如何。比如，<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;  创建一个tcp socket的语法如下：<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;  socket(AF_INET,SOCK_STREAM)<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 创建一个udp socket的语法如下：<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;  socket(AF_INET,SOCK_DGRAM)<br><br>&nbsp;&nbsp;&nbsp; 6）学习socket server端编程实现简单规约比如echo，time等，然后通过cmd中的telnet来测试。<br><br>&nbsp;&nbsp;&nbsp; 7）学习I/O模型，比如阻塞、非阻塞和反应式（select,poll,WaitForMultipleObject)等<br><br>&nbsp;&nbsp;&nbsp; 8）学习Richard Stevens的《Unix网络编程》，深入学习其中的api原理以及服务端设计原理，并通过代码编写。<br><br>&nbsp;&nbsp;&nbsp; 9）下载高性能网络编程框架<a  href="http://www.twistedmatrix.com/">twisted</a>，笔者强烈推荐，它将使你的网络编程效率提高10倍以上。<br><br>&nbsp;&nbsp;&nbsp; 10）学习设计模式、操作系统知识比如线程、进程、同步等。<br><img src ="http://www.cppblog.com/waterinfire/aggbug/23904.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/waterinfire/" target="_blank">程序员看世界</a> 2007-05-11 16:14 <a href="http://www.cppblog.com/waterinfire/archive/2007/05/11/23904.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>高速学习socket编程的10个步骤</title><link>http://www.cppblog.com/waterinfire/archive/2007/04/06/21415.html</link><dc:creator>程序员看世界</dc:creator><author>程序员看世界</author><pubDate>Fri, 06 Apr 2007 09:02:00 GMT</pubDate><guid>http://www.cppblog.com/waterinfire/archive/2007/04/06/21415.html</guid><wfw:comment>http://www.cppblog.com/waterinfire/comments/21415.html</wfw:comment><comments>http://www.cppblog.com/waterinfire/archive/2007/04/06/21415.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/waterinfire/comments/commentRss/21415.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/waterinfire/services/trackbacks/21415.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;socket编程不比单机编程，它至少涉及两个角色即客户端和服务端，在socket的运行中由于它涉及了网络上的n多设备，只要其中的一个设备有问题，就会可能导致程序出问题。<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;作为初学网络编程的程序员来说，我们应该怎么高效地学习网络呢？经过个人几年的学习和实践，我觉得要进行高效的网络编程学习，可以有以下是个步骤：<br><br>&nbsp;&nbsp;&nbsp;1）马上到<a href="http://www.python.org/">www.python.org</a>下下载python，然后花2～3天时间学习基本的python语法。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;python是一门优秀的脚本语言，易学易用。这里是一篇<a href="http://wiki.woodpecker.org.cn/moin/WhyPython/WhyPythonZh">为什么要选择python</a>的文章，读者朋友可以参看。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我个人觉得最重要的是在python，我们可以通过交互式来学习网络编程，你敲一个命令就可以马上获得该命令的反应。如果一开始就用c/c++或者java来学习网络编程的话，那将是非常让我泄气的，因为你必须解决编译、链接等问题。<br><br>2）学习C/S交互模型，具体来说客户端的编程模型是怎样的，服务端模型又是怎样的，然后把该模型彻底消化成自己的语言。<br><br>3）学习socket的api，并且在python下不断练习。<br><br>4）和一位同道者结成学习小组，大家共同学习网络编程。比如在一段时间一个人编写客户端，另一个编写服务端；再过一段时间，换一下角色；<br><br>5）参加网上讨论组，比如google上的高性能网络编程组。<br><br>（待续）</p>
<img src ="http://www.cppblog.com/waterinfire/aggbug/21415.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/waterinfire/" target="_blank">程序员看世界</a> 2007-04-06 17:02 <a href="http://www.cppblog.com/waterinfire/archive/2007/04/06/21415.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux获得线程信息的办法</title><link>http://www.cppblog.com/waterinfire/archive/2007/03/23/20428.html</link><dc:creator>程序员看世界</dc:creator><author>程序员看世界</author><pubDate>Fri, 23 Mar 2007 04:46:00 GMT</pubDate><guid>http://www.cppblog.com/waterinfire/archive/2007/03/23/20428.html</guid><wfw:comment>http://www.cppblog.com/waterinfire/comments/20428.html</wfw:comment><comments>http://www.cppblog.com/waterinfire/archive/2007/03/23/20428.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/waterinfire/comments/commentRss/20428.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/waterinfire/services/trackbacks/20428.html</trackback:ping><description><![CDATA[
		<p>在linux中，我们可以通过以下命令获得目前使用的thread版本：<br /><br /> getconf GNU_LIBPTHREAD_VERSION<br /><br /> 比如在我的RedHad平台上，得到以下输出：<br />  NPTL 0.60<br /><br />  另外我们还可以通过以下命令获得更多的关于线程的信息：<br />   1) ldd /bin/ls | grep libc.so.6<br />   输出：<br />           libc.so.6 =&gt; /lib/tls/libc.so.6 (0xb749a000)<br /><br />   2) /lib/tls/libc.so.6<br />   输出：<br /><br />GNU C Library stable release version 2.3.2, by Roland McGrath et al.<br />Copyright (C) 2003 Free Software Foundation, Inc.<br />This is free software; see the source for copying conditions.<br />There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A<br />PARTICULAR PURPOSE.<br />Compiled by GNU CC version 3.2.3 20030502 (Red Hat Linux 3.2.3-20).<br />Compiled on a Linux 2.4.20 system on 2003-10-02.<br />Available extensions:<br />        GNU libio by Per Bothner<br />        crypt add-on version 2.1 by Michael Glad and others<br />        <strong><font style="BACKGROUND-COLOR: #ffffff" color="#ff0000">NPTL 0.60 by Ulrich Drepper</font></strong><br />        RT using linux kernel aio<br />        The C stubs add-on version 2.1.2.<br />        BIND-8.2.3-T5B<br />        NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk<br />        Glibc-2.0 compatibility add-on by Cristian Gafton <br /><font color="#ff0000"><strong>Thread-local storage support included.<br /></strong></font>Report bugs using the `glibcbug' script to &lt;<a href="mailto:bugs@gnu.org">bugs@gnu.org</a>&gt;.<br /><br /></p>
<img src ="http://www.cppblog.com/waterinfire/aggbug/20428.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/waterinfire/" target="_blank">程序员看世界</a> 2007-03-23 12:46 <a href="http://www.cppblog.com/waterinfire/archive/2007/03/23/20428.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>超级电子书基地</title><link>http://www.cppblog.com/waterinfire/archive/2007/03/12/19660.html</link><dc:creator>程序员看世界</dc:creator><author>程序员看世界</author><pubDate>Mon, 12 Mar 2007 13:33:00 GMT</pubDate><guid>http://www.cppblog.com/waterinfire/archive/2007/03/12/19660.html</guid><wfw:comment>http://www.cppblog.com/waterinfire/comments/19660.html</wfw:comment><comments>http://www.cppblog.com/waterinfire/archive/2007/03/12/19660.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/waterinfire/comments/commentRss/19660.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/waterinfire/services/trackbacks/19660.html</trackback:ping><description><![CDATA[   最近本人在网上找到一个超级庞大的电子书基地，里面你几乎可以找到你想学习的任何编程知识，比如操作系统、数据库、语言(C#,Java,Php等）、设计等。<br /><br />   <a href="www.flazx.com">www.flazx.com</a><br /><br />  <img src ="http://www.cppblog.com/waterinfire/aggbug/19660.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/waterinfire/" target="_blank">程序员看世界</a> 2007-03-12 21:33 <a href="http://www.cppblog.com/waterinfire/archive/2007/03/12/19660.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>从“模式转变”说起？</title><link>http://www.cppblog.com/waterinfire/archive/2007/03/11/19583.html</link><dc:creator>程序员看世界</dc:creator><author>程序员看世界</author><pubDate>Sun, 11 Mar 2007 14:14:00 GMT</pubDate><guid>http://www.cppblog.com/waterinfire/archive/2007/03/11/19583.html</guid><wfw:comment>http://www.cppblog.com/waterinfire/comments/19583.html</wfw:comment><comments>http://www.cppblog.com/waterinfire/archive/2007/03/11/19583.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/waterinfire/comments/commentRss/19583.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/waterinfire/services/trackbacks/19583.html</trackback:ping><description><![CDATA[   “我们怎样才能变得效率更高？我发现，如果你希望慢慢地，逐步地提高，改变你的态度和行为，你就能做到这一点。但是，如果你想以快速的方式——我的意思是说，以剧烈的、革命性的、转型性的方式——如果你想发生量子级的提高，不论是个人还是组织，你都要改变你的参照模式。<br />      改变你对世界的看法，你对人的看法，你对管理和领导的看法。改变你的模式，改变你理解和解释现实某些方面的方法。最大的突破就是打破旧的思考方式。”<br /><br />   以上段落引自美国牛人斯蒂芬.柯维。<br /><br />   作为在亭子间来来往往的程序员，我们何尝不想提高我们的工作效率，提升我们的编程水平。但是经过了n个项目的磨练，n行代码的编写之后，为什么我们的编程水平不见大幅度提高或者发生量子级跃迁呢？<br /><br />   在经过几年的项目磨练之后，我们的编程水平毫无疑问会有所进展，我们的分析、设计和思考能力当然也会有所进步。但是到了一定阶段之后，就会感觉达到了自己能力的瓶颈，每天、每月、每年似乎能在重复做着同一个水平线上的工作，只要工作要求超过此水平线，就会感觉自己无从下手。就像电子的能级一样，只能在同一个能级上飞来飞去，而不能跃迁到一个高的能级。<br /><br />   诚如斯蒂芬所言，“如果你想发生量子级的提高，你要改变你的参照模式。你对人的看法，你对管理和领导的看法。改变你的模式。”如果我们感觉自己每天工作也非常能力，学习也挺卖力，做得项目也不少，但是如果你自我感觉不好的话。那么我们就要观照一下自己的模式，思考人生、社会和宇宙的模式，很有可能是我们自己思考的模式出现了问题。<br /><br />   <br />   <br /><br /><img src ="http://www.cppblog.com/waterinfire/aggbug/19583.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/waterinfire/" target="_blank">程序员看世界</a> 2007-03-11 22:14 <a href="http://www.cppblog.com/waterinfire/archive/2007/03/11/19583.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Unix调试指导书</title><link>http://www.cppblog.com/waterinfire/archive/2007/03/08/19466.html</link><dc:creator>程序员看世界</dc:creator><author>程序员看世界</author><pubDate>Thu, 08 Mar 2007 14:13:00 GMT</pubDate><guid>http://www.cppblog.com/waterinfire/archive/2007/03/08/19466.html</guid><wfw:comment>http://www.cppblog.com/waterinfire/comments/19466.html</wfw:comment><comments>http://www.cppblog.com/waterinfire/archive/2007/03/08/19466.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/waterinfire/comments/commentRss/19466.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/waterinfire/services/trackbacks/19466.html</trackback:ping><description><![CDATA[AIX：<a href="http://www.unet.univie.ac.at/aix/aixprggd/genprogc/toc.htm">http://www.unet.univie.ac.at/aix/aixprggd/genprogc/toc.htm</a><br /><br /><img src ="http://www.cppblog.com/waterinfire/aggbug/19466.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/waterinfire/" target="_blank">程序员看世界</a> 2007-03-08 22:13 <a href="http://www.cppblog.com/waterinfire/archive/2007/03/08/19466.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>精灵是怎样炼成的？</title><link>http://www.cppblog.com/waterinfire/archive/2007/03/08/19461.html</link><dc:creator>程序员看世界</dc:creator><author>程序员看世界</author><pubDate>Thu, 08 Mar 2007 13:16:00 GMT</pubDate><guid>http://www.cppblog.com/waterinfire/archive/2007/03/08/19461.html</guid><wfw:comment>http://www.cppblog.com/waterinfire/comments/19461.html</wfw:comment><comments>http://www.cppblog.com/waterinfire/archive/2007/03/08/19461.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/waterinfire/comments/commentRss/19461.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/waterinfire/services/trackbacks/19461.html</trackback:ping><description><![CDATA[
		<p dir="ltr" style="MARGIN-RIGHT: 0px">      许多程序员说精灵(daemon)不是魔鬼(demon)。即使有时似乎象魔鬼，但你的服务器是不会由魔鬼控制的（或许你的某些用户会由魔鬼控制，但你的服务器不会）。<br /><br />      我们把精灵定义为一个在后台运行的程序，用于管理系统的各个功能。该词的字面意思是“介乎神与人的精灵”。诗人威廉.巴特勒.耶茨很喜欢该词的意喻及其对现实二重性的表达。他以人来看待精灵，用精灵来表达人性的另一面。你不会明白，魔鬼不存在该有多好！例如，你怎么知道你这块馅饼是大的？除非你曾有一块比这小的。<br /><br />     事实上，精灵这个术语源自希腊神话。古希腊人称精灵为超人，它充当神与人之间的仲裁者。这是Unix精灵为你所做的一切的最准确描述。实际上，精灵始终呆在后台随时等待调用去执行某些服务。系统上运行的某些精灵执行系统指定的每项服务。但，请不要混淆精灵和进程这两个术语。<br />    <br />    既然精灵介于神人之间，那么人有没有可能变成精灵呢？<br /><br />    在unix的世界中，一般的进程能变成精灵进程吗？答案是肯定的，下面我们就一步一步揭开人到精灵的进化过程。<br /><br /> <strong>  决裂阶段：<br /></strong>   在这个阶段，我们必须脱离父母的怀抱，走向自己的新天地<br />   <br />   /* 父母创造了我们<br />   if(fork() &gt; 0) {<br />      /* 父母给了我们自由 */<br />      exit(0);<br />   }<br /><br />   <strong>创造阶段:<br /></strong>   父母给我们自由身，我们可以创造自己的新天地。为了将来美好的未来，我们要做三件事情：<br />   1）创造新的会话期，我们成为会话期的领导<br />   2）创造新的组织（进程组），我们自己成为该组的组长<br />   3）我们脱离终端的控制<br />   setsid();<br /><br />  <strong> 升华阶段</strong>：<br /><br />   “上善若水，<font color="#cc0033">水</font>善利万物而不争。处众人之所恶，故几于道。”，作为精灵的候选人，创造了自己的组织之后，不能再以组长自居，而应把自己当成普通人。<br />   <br />   signal(SIGHUP,SIG_IGN);<br />   if(fork()&gt;0){<br />      /*毁灭原身*/<br />      exit(0);<br />   }<br /><br />   返璞归真：<br /><br />   chdir("/");<br />   umask(0);<br />   for(i=0;i&lt;64;++i)<br />   {<br />      close(i);<br />   }<br /><br />   圆满阶段：<br />   经过以上各个修炼阶段，在此为止我们已经具备了精灵的各个条件。但是以上很不够，作为一个精灵，最主要的还是我们毛主席那句话：“为人民服务”。<br /><br />   我们应该在这个阶段把我们要做的事启动起来，做以下事情：<br /><br />   int service()<br />   {<br />      /* 有什么要求 */<br />      data = getIncomingRequest();<br /><br />      /* 为人民服务 */<br />      result  = processRequest(data)<br /><br />      /* 对人民的所求有个交代 */<br />      sendResponse(result);<br />   }<br /><br /><br />   </p>
<img src ="http://www.cppblog.com/waterinfire/aggbug/19461.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/waterinfire/" target="_blank">程序员看世界</a> 2007-03-08 21:16 <a href="http://www.cppblog.com/waterinfire/archive/2007/03/08/19461.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>介绍FileMon和Regmon的好文章</title><link>http://www.cppblog.com/waterinfire/archive/2007/03/07/19384.html</link><dc:creator>程序员看世界</dc:creator><author>程序员看世界</author><pubDate>Wed, 07 Mar 2007 14:01:00 GMT</pubDate><guid>http://www.cppblog.com/waterinfire/archive/2007/03/07/19384.html</guid><wfw:comment>http://www.cppblog.com/waterinfire/comments/19384.html</wfw:comment><comments>http://www.cppblog.com/waterinfire/archive/2007/03/07/19384.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/waterinfire/comments/commentRss/19384.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/waterinfire/services/trackbacks/19384.html</trackback:ping><description><![CDATA[
		<a href="http://download.microsoft.com/download/0/1/3/01381C25-72DA-4AA9-B792-43E02A243C71/SVR333_Russinovich_Solomon.ppt">
				<br />http://download.microsoft.com/download/0/1/3/01381C25-72DA-4AA9-B792-43E02A243C71/SVR333_Russinovich_Solomon.ppt</a>
<img src ="http://www.cppblog.com/waterinfire/aggbug/19384.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/waterinfire/" target="_blank">程序员看世界</a> 2007-03-07 22:01 <a href="http://www.cppblog.com/waterinfire/archive/2007/03/07/19384.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>怎样把代码从unix移植到windows</title><link>http://www.cppblog.com/waterinfire/archive/2007/03/07/19382.html</link><dc:creator>程序员看世界</dc:creator><author>程序员看世界</author><pubDate>Wed, 07 Mar 2007 13:26:00 GMT</pubDate><guid>http://www.cppblog.com/waterinfire/archive/2007/03/07/19382.html</guid><wfw:comment>http://www.cppblog.com/waterinfire/comments/19382.html</wfw:comment><comments>http://www.cppblog.com/waterinfire/archive/2007/03/07/19382.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/waterinfire/comments/commentRss/19382.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/waterinfire/services/trackbacks/19382.html</trackback:ping><description><![CDATA[看看:<br /><br /><a href="http://www.microsoft.com/downloads/details.aspx?familyid=6224464a-31aa-42d1-ae0b-dd9b5713b928&amp;displaylang=en&amp;Hash=sYjUTuHJ1seLbY4hHLsEByNWlpud7KKOVvMBDFF8Mdz42aCFbMxFK3ADx1F307uFvCoHZZ3AmnA6fQ90ILvmAg%3d%3d">http://www.microsoft.com/downloads/details.aspx?familyid=6224464a-31aa-42d1-ae0b-dd9b5713b928&amp;displaylang=en&amp;Hash=sYjUTuHJ1seLbY4hHLsEByNWlpud7KKOVvMBDFF8Mdz42aCFbMxFK3ADx1F307uFvCoHZZ3AmnA6fQ90ILvmAg%3d%3d</a><br /><br /><img src ="http://www.cppblog.com/waterinfire/aggbug/19382.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/waterinfire/" target="_blank">程序员看世界</a> 2007-03-07 21:26 <a href="http://www.cppblog.com/waterinfire/archive/2007/03/07/19382.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>twisted的学习资料</title><link>http://www.cppblog.com/waterinfire/archive/2007/02/14/18748.html</link><dc:creator>程序员看世界</dc:creator><author>程序员看世界</author><pubDate>Wed, 14 Feb 2007 02:10:00 GMT</pubDate><guid>http://www.cppblog.com/waterinfire/archive/2007/02/14/18748.html</guid><wfw:comment>http://www.cppblog.com/waterinfire/comments/18748.html</wfw:comment><comments>http://www.cppblog.com/waterinfire/archive/2007/02/14/18748.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/waterinfire/comments/commentRss/18748.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/waterinfire/services/trackbacks/18748.html</trackback:ping><description><![CDATA[    twisted是个非常非常优秀的高性能网络编程框架，通过它可以以“闪电”般地速度开发出高性能、高质量的网络服务器，具体可见其网址：http://www.twistedmatrix.com.<br /><br />    虽然twisted是个非常好的开发框架，但关于它的学习资料相对比较少。这给学习者的学习带来了不少在阻碍，通过笔者平时的上网搜索，获得了以下一些资料和大家分享：<br /><br /><br />    <br />    使用 Twisted 框架进行网络编程<br /><ul><li>    <a href="http://www.ibm.com/developerworks/cn/linux/network/l-twist/part1/">http://www.ibm.com/developerworks/cn/linux/network/l-twist/part1/</a></li><li>    <a href="http://www.ibm.com/developerworks/cn/linux/network/l-twist/part2/">http://www.ibm.com/developerworks/cn/linux/network/l-twist/part2/</a></li><li>    <a href="http://www.ibm.com/developerworks/cn/linux/network/l-twist/part3/">http://www.ibm.com/developerworks/cn/linux/network/l-twist/part3/</a></li><li>    <a href="http://www.ibm.com/developerworks/cn/linux/network/l-twist/part4/">http://www.ibm.com/developerworks/cn/linux/network/l-twist/part4/</a></li></ul>    《Twisted Network Programming Essentials》<br />    <a href="http://www.sec168.com/blog/blogsec/gashero/archives/2006/23.html">http://www.sec168.com/blog/blogsec/gashero/archives/2006/23.html</a><br />    <a href="http://safari.oreilly.com/0596100329">http://safari.oreilly.com/0596100329</a><br />    <a href="http://www.oreilly.com/catalog/twistedadn/">http://www.oreilly.com/catalog/twistedadn/</a><br /><br />    Twisted模式<br />    <a href="http://www.rexx.com/%7Edkuhlman/twisted_patterns.html">http://www.rexx.com/~dkuhlman/twisted_patterns.html</a><br /><br />    Twisted与线程<br />    <a href="http://kaishaku.org/twisted-vs-threads/">http://kaishaku.org/twisted-vs-threads/</a><br /><br />    The Twisted Network Framework<br />    <a href="http://www.python10.org/p10-papers/09/index.htm">http://www.python10.org/p10-papers/09/index.htm</a><br /><br />    Twisted defer<br />    <a href="http://python.fyxm.net/pycon/papers/deferex/">http://python.fyxm.net/pycon/papers/deferex/</a><br /><br />    在Windows下制作和部署twisted程序<br />    <a href="http://www.adelux.fr/libre/howto/en/twisted_windows">http://www.adelux.fr/libre/howto/en/twisted_windows</a><br /><br />    Twisted批判者<br />    <a href="http://laurentszyster.be/blog/labeling-the-twisted-bits/">http://laurentszyster.be/blog/labeling-the-twisted-bits/</a><span style="color: rgb(0, 0, 255);"></span><br /><br />    啄木鸟社区<br />    <a href="http://wiki.woodpecker.org.cn/moin/PyTwisted">http://wiki.woodpecker.org.cn/moin/PyTwisted</a><br /><br />    Event-Driven Programming with Twisted and Python<br />    <a href="http://www.linuxjournal.com/node/7871/print">http://www.linuxjournal.com/node/7871/print</a><br /><br />    An Introduction to the Twisted Networking Framework<br />    <a href="http://www.onlamp.com/pub/a/python/2004/01/15/twisted_intro.html">http://www.onlamp.com/pub/a/python/2004/01/15/twisted_intro.html</a><br /><br />    ASPN上twisted例子<br />             <a href="http://aspn.activestate.com/ASPN/search?query=twisted&amp;x=0&amp;y=0&amp;section=PYTHONCKBK&amp;type=Subsection">http://aspn.activestate.com/ASPN/search?query=twisted&amp;x=0&amp;y=0&amp;section=PYTHONCKBK&amp;type=Subsection</a><br /><br />    Network Programming for the Rest of Us    <a href="http://www.usenix.org/events/usenix03/tech/freenix03/full_papers/lefkowitz/lefkowitz_html/index.html">http://www.usenix.org/events/usenix03/tech/freenix03/full_papers/lefkowitz/lefkowitz_html/index.html</a><br /><br />    Twisted WEB测试<br />    <a href="http://agiletesting.blogspot.com/2005/02/web-app-testing-with-python-part-1.html">http://agiletesting.blogspot.com/2005/02/web-app-testing-with-python-part-1.html</a><br />    <a href="http://agiletesting.blogspot.com/2005/03/web-app-testing-with-python-part-2.html">http://agiletesting.blogspot.com/2005/03/web-app-testing-with-python-part-2.html</a><br /><img src ="http://www.cppblog.com/waterinfire/aggbug/18748.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/waterinfire/" target="_blank">程序员看世界</a> 2007-02-14 10:10 <a href="http://www.cppblog.com/waterinfire/archive/2007/02/14/18748.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>