﻿<?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++博客-My C++-随笔分类-网络</title><link>http://www.cppblog.com/finehai/category/11236.html</link><description>当时只道是寻常~</description><language>zh-cn</language><lastBuildDate>Tue, 24 Apr 2012 17:45:17 GMT</lastBuildDate><pubDate>Tue, 24 Apr 2012 17:45:17 GMT</pubDate><ttl>60</ttl><item><title>FTP工作原理 </title><link>http://www.cppblog.com/finehai/archive/2012/04/24/172593.html</link><dc:creator>Bluesea</dc:creator><author>Bluesea</author><pubDate>Tue, 24 Apr 2012 06:05:00 GMT</pubDate><guid>http://www.cppblog.com/finehai/archive/2012/04/24/172593.html</guid><wfw:comment>http://www.cppblog.com/finehai/comments/172593.html</wfw:comment><comments>http://www.cppblog.com/finehai/archive/2012/04/24/172593.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/finehai/comments/commentRss/172593.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/finehai/services/trackbacks/172593.html</trackback:ping><description><![CDATA[<span style="font-size: 12pt;"> </span><div><p><span style="font-size: 12pt;"><br /></span></p><p><span style="font-size: 12pt;">FTP Transfer Protocol 件传输协议的缩写,在RFC 959中具体说明。</span></p> <p><span style="font-size: 12pt;">FTP会话时包含了两个通道，一个叫控制通道，一个叫数据通道。</span></p><p><span style="font-size: 12pt;"><br /></span></p> <p><strong style="font-size: 12pt;">控制通道</strong>：<span style="font-size: 12pt;">控制通道是和FTP服务器进行沟通的通道，连接FTP，发送FTP指令都是通过控制通道来完成的。</span></p> <p><strong style="font-size: 12pt;">数据通道</strong>：<span style="font-size: 12pt;">数据通道是和FTP服务器进行文件传输或者列表的通道。</span></p><p><span style="font-size: 12pt;"><br /></span></p> <p><span style="font-size: 12pt;">FTP协议中，控制连接均有客户端发起，而数据连接有两种工作方式：PORT方式和PASV方式</span></p> <p> </p><dl><dt><strong style="font-size: 12pt;">PORT模式(主动方式)</strong>  </dt><dd> <p><span style="font-size: 12pt;">FTP 客户端首先和FTP Server的TCP  21端口建立连接，通过这个通道发送命令，客户端需要接收数据的时候在这个通道上发送PORT命令。  PORT命令包含了客户端用什么端口(一个大于1024的端口)接收数据。在传送数据的时候，服务器端通过自己的TCP 20端口发送数据。 FTP  server必须和客户端建立一个新的连接用来传送数据。</span></p></dd><dt><br /></dt><dt><strong style="font-size: 12pt;">PASV模式(被动方式)</strong>  </dt><dd> <p><span style="font-size: 12pt;">在建立控制通道的时候和PORT模式类似，当客户端通过这个通道发送PASV 命令的时候，FTP  server打开一个位于1024和5000之间的随机端口并且通知客户端在这个端口上传送数据的请求，然后FTP server  将通过这个端口进行数据的传送，这个时候FTP server不再需要建立一个新的和客户端之间的连接传送数据。</span></p></dd><dt><br /></dt></dl>  <p><span style="font-size: 12pt;">如果从C/S模型这个角度来说，PORT对于服务器来说是OUTBOUND，而PASV模式对于服务器是INBOUND，这一点请特别注意，尤其是在使用防火墙的企业里，这一点非常关键，如果设置错了，那么客户将无法连接。</span></p></div><img src ="http://www.cppblog.com/finehai/aggbug/172593.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/finehai/" target="_blank">Bluesea</a> 2012-04-24 14:05 <a href="http://www.cppblog.com/finehai/archive/2012/04/24/172593.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RTP包头分析（H.264）</title><link>http://www.cppblog.com/finehai/archive/2009/07/18/90443.html</link><dc:creator>Bluesea</dc:creator><author>Bluesea</author><pubDate>Sat, 18 Jul 2009 11:18:00 GMT</pubDate><guid>http://www.cppblog.com/finehai/archive/2009/07/18/90443.html</guid><wfw:comment>http://www.cppblog.com/finehai/comments/90443.html</wfw:comment><comments>http://www.cppblog.com/finehai/archive/2009/07/18/90443.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/finehai/comments/commentRss/90443.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/finehai/services/trackbacks/90443.html</trackback:ping><description><![CDATA[<p>h.264规范中使用了在NAL层使用了<a onclick="javascript:tagshow(event, 'RTP');" href="javascript:;" target=_self><u><strong><font color=#800080>RTP</font></strong></u></a>的<a onclick="javascript:tagshow(event, '%B0%FC%CD%B7');" href="javascript:;" target=_self><u><strong><font color=#800080>包头</font></strong></u></a>形式,下面对RTP的包头做一下解释:</p>
<p>首先我们来看一下H.264中对于RPT的结构封装如下:</p>
<p>typedef struct<br>{<br>&nbsp; <a onclick="javascript:tagshow(event, 'unsigned');" href="javascript:;" target=_self><u><strong><font color=#800080>unsigned</font></strong></u></a> <a onclick="javascript:tagshow(event, 'int');" href="javascript:;" target=_self><u><strong><font color=#800080>int</font></strong></u></a> v;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //!&lt; Version, 2 bits, MUST be 0x2<br>&nbsp; unsigned int p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //!&lt; <a onclick="javascript:tagshow(event, 'Padding');" href="javascript:;" target=_self><u><strong><font color=#800080>Padding</font></strong></u></a> bit, Padding MUST NOT be used<br>&nbsp; unsigned int x;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //!&lt; Extension, MUST be zero<br>&nbsp; unsigned int cc;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*!&lt; CSRC count, normally 0 in the absence<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; of RTP mixers */<br>&nbsp; unsigned int m;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //!&lt; Marker bit<br>&nbsp; unsigned int pt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //!&lt; 7 bits, Payload Type, dynamically established<br>&nbsp; unsigned int seq;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*!&lt; RTP sequence number, incremented by one for<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; each sent packet */<br>&nbsp; unsigned int old_seq;&nbsp;&nbsp;&nbsp; //!&lt; to detect wether packets were lost<br>&nbsp; unsigned int timestamp;&nbsp; //!&lt; timestamp, 27 MHz for H.26L<br>&nbsp; unsigned int ssrc;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //!&lt; Synchronization Source, chosen randomly<br>&nbsp; byte *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; payload;&nbsp;&nbsp;&nbsp; //!&lt; the payload including payload headers<br>&nbsp; unsigned int paylen;&nbsp;&nbsp;&nbsp;&nbsp; //!&lt; length of payload in bytes<br>&nbsp; byte *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; packet;&nbsp;&nbsp;&nbsp;&nbsp; //!&lt; complete packet including header and payload<br>&nbsp; unsigned int packlen;&nbsp;&nbsp;&nbsp; //!&lt; length of packet, typically paylen+12<br>} RTPpacket_t;</p>
<p>对于ＲＴＰ包头格式如下：</p>
<p>0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1<br>+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br>|V=2|P|X| CC |M| PT | sequence number |<br>+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br>| timestamp |<br>+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<br>| synchronization source (SSRC) identifier |<br>+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+<br>| contributing source (CSRC) identifiers |<br>| .... |<br>+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</p>
<p>前１２个字节在每个ＲＴＰ包中都存在，他们是：V、Ｐ、Ｘ、ＣＣ、Ｍ、ＰＴ、sequence number、timestamp、SSRC.其中Ｖ是版本号（占２个bit)；Ｐ是填充位(占１个bit)；Ｘ是扩展位(占１个bit);CC是ＣＳＲＣ的记数位（占４个bit);Ｍ是标记位（占１个bit);PT是有效载荷的类型（占７个bit);sequence number是ＲＴＰ包记数位（占１６个bit);timestamp是时间戳位（占４个字节）；ＳＳＲＣ是同步标志位（占４个字节）。</p>
<p>ＣＳＲＣ不是ＲＴＰ必须的（占４个字节）。<br><br>rtp包头的意思：<br>CSRC记数（CC）　　表示CSRC标识的数目。CSRC标识紧跟在<a onclick="javascript:tagshow(event, 'RTP');" href="javascript:;" target=_self><u><strong><font color=#000000>RTP</font></strong></u></a>固定头部之后，用来表示RTP数据报的来源，RTP协议允许在同一个会话中存在多个<a onclick="javascript:tagshow(event, '%CA%FD%BE%DD');" href="javascript:;" target=_self><u><strong><font color=#000000>数据</font></strong></u></a>源，它们可以通过RTP混合器合并为一个数据源。例如，可以产生一个CSRC列表来表示一个电话会议，该会议通过一个RTP混合器将所有讲话者的语音数据组合为一个RTP数据源。<br><strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">负载</strong>类型（PT）　　标明RTP<strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">负载</strong>的格式，包括所采用的编码算法、采样频率、承载通道等。例如，类型2表明该RTP数据包中承载的是用ITU G.721算法编码的语音数据，采样频率为8000Hz，并且采用单声道。<br><a onclick="javascript:tagshow(event, '%D0%F2%C1%D0%BA%C5');" href="javascript:;" target=_self><u><strong><font color=#000000>序列号</font></strong></u></a>　　用来为接收方提供探测数据丢失的方法，但如何处理丢失的数据则是应用程序自己的事情，RTP协议本身并不负责数据的重传。<br>时间戳　　记录了<strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">负载</strong>中第一个字节的采样时间，接收方能够时间戳能够确定数据的到达是否受到了延迟抖动的影响，但具体如何来补偿延迟抖动则是应用程序自己的事情。</p>
<img src ="http://www.cppblog.com/finehai/aggbug/90443.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/finehai/" target="_blank">Bluesea</a> 2009-07-18 19:18 <a href="http://www.cppblog.com/finehai/archive/2009/07/18/90443.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IP地址的相关知识 </title><link>http://www.cppblog.com/finehai/archive/2009/07/18/90442.html</link><dc:creator>Bluesea</dc:creator><author>Bluesea</author><pubDate>Sat, 18 Jul 2009 11:15:00 GMT</pubDate><guid>http://www.cppblog.com/finehai/archive/2009/07/18/90442.html</guid><wfw:comment>http://www.cppblog.com/finehai/comments/90442.html</wfw:comment><comments>http://www.cppblog.com/finehai/archive/2009/07/18/90442.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/finehai/comments/commentRss/90442.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/finehai/services/trackbacks/90442.html</trackback:ping><description><![CDATA[谈到因特网，IP地址就不能不提，因为无论是从学习还是使用因特网的角度来看，IP地址都是一个十分重<br>要的概念，INTERNET的许多服务和特点都是通过IP地址体现出来的。 <br>　　一、IP地址的概念<br>　　我们知道因特网是全世界范围内的计算机联为一体而构成的通信网络的总称。联在某个网络上的两台<br>计算机之间在相互通信时，在它们所传送的数据包里都会含有某些附加信息，这些附加信息就是发送数据<br>的计算机的地址和接受数据的计算机的地址。象这样，人们为了通信的方便给每一台计算机都事先分配一<br>个类似我们日常生活中的电话号码一样的标识地址，该标识地址就是我们今天所要介绍的IP地址。根据<br>TCP/IP协议规定，IP地址是由32位二进制数组成，而且在INTERNET范围内是唯一的。例如，某台联在因特<br>网上的计算机的IP地址为： <br>　　　　11010010 01001001 10001100 00000010 <br>　　很明显，这些数字对于人来说不太好记忆。人们为了方便记忆，就将组成计算机的IP地址的32位二进<br>制分成四段，每段8位，中间用小数点隔开，然后将每八位二进制转换成十进制数，这样上述计算机的IP<br>地址就变成了：210.73.140.2。 <br>　　二、IP地址的分类<br>　　我们说过因特网是把全世界的无数个网络连接起来的一个庞大的网间网，每个网络中的计算机通过其<br>自身的IP地址而被唯一标识的，据此我们也可以设想，在INTERNET上这个庞大的网间网中，每个网络也有<br>自己的标识符。这与我们日常生活中的电话号码很相像，例如有一个电话号码为0515163，这个号码中的<br>前四位表示该电话是属于哪个地区的，后面的数字表示该地区的某个电话号码。与上面的例子类似，我们<br>把计算机的IP地址也分成两部分，分别为网络标识和主机标识。同一个物理网络上的所有主机都用同一个<br>网络标识，IP地址的4个字节划分为2个部分，一部分用以标明具体的网络段，即网络标识；另一部分用以<br>标明具体的节点，即主机标识，也就是说某个网络中的特定的计算机号码。例如，盐城市信息网络中心的<br>服务器的IP地址为210.73.140.2，对于该IP地址，我们可以把它分成网络标识和主机标识两部分，这样上<br>述的IP地址就可以写成： <br>　　　　　网络标识：210.73.140.0 <br>　　　　　主机标识：　　　　 2　　　　　　　　 <br>　　　　　合起来写：210.73.140.2 <br>　　由于网络中包含的计算机有可能不一样多，有的网络可能含有较多的计算机，也有的网络包含较少的<br>计算机，于是人们按照网络规模的大小，把32位地址信息设成三种定位的划分方式，这三种划分方法分别<br>对应于A类、B类、C类IP地址。 <br>　　1．A类IP地址 <br>　　一个A类IP地址是指，在IP地址的四段号码中，第一段号码为网络号码，剩下的三段号码为本地计算<br>机的号码。如果用二进制表示IP地址的话，A类IP地址就由1字节的网络地址和3字节主机地址组成，网络<br>地址的最高位必须是&#8220;0&#8221;。A类IP地址中网络的标识长度为7位，主机标识的长度为24位，A类网络地址数<br>量较少，可以用于主机数达1600多万台的大型网络。 <br>　　2．B类IP地址 <br>　　一个B类IP地址是指，在IP地址的四段号码中，前两段号码为网络号码，剩下的两段号码为本地计算<br>机的号码。如果用二进制表示IP地址的话，B类IP地址就由2字节的网络地址和2字节主机地址组成，网络<br>地址的最高位必须是&#8220;10&#8221;。B类IP地址中网络的标识长度为14位，主机标识的长度为16位，B类网络地址<br>适用于中等规模规模的网络，每个网络所能容纳的计算机数为6万多台。 <br>　　3．C类IP地址 <br>　　一个C类IP地址是指，在IP地址的四段号码中，前三段号码为网络号码，剩下的一段号码为本地计算<br>机的号码。如果用二进制表示IP地址的话，C类IP地址就由3字节的网络地址和1字节主机地址组成，网络<br>地址的最高位必须是&#8220;110&#8221;。C类IP地址中网络的标识长度为21位，主机标识的长度为8位，C类网络地址<br>数量较多，适用于小规模的局域网络，每个网络最多只能包含254台计算机。 <br>　　除了上面三种类型的IP地址外，还有几种特殊类型的IP地址，TCP/IP协议规定，凡IP地址中的第一个<br>字节以&#8220;lll0&#8221;开始的地址都叫多点广播地址。因此，任何第一个字节大于223小于240的IP地址是多点广<br>播地址；IP地址中的每一个字节都为0的地址（&#8220;0.0.0.0&#8221;）对应于当前主机；IP地址中的每一个字节都<br>为1的IP地址（&#8220;255．255．255．255&#8221;）是当前子网的广播地址；IP地址中凡是以&#8220;llll0&#8221;的地址都留<br>着将来作为特殊用途使用。 <br>　　三、IP的寻址规则　　 <br>　　1.网络寻址规则 <br>　　A、 网络地址必须唯一。 <br>　　B、 网络标识不能以数字127开头。在A类地址中，数字127保留给内部回送函数。 <br>　　C、 网络标识的第一个字节不能为255。数字2５5作为广播地址。 <br>　　D、 网络标识的第一个字节不能为&#8220;0&#8221;，&#8220;0&#8221;表示该地址是本地主机，不能传送。 <br>　　 2.主机寻址规则 <br>　　A、主机标识在同一网络内必须是唯一的。 <br>　　B、主机标识的各个位不能都为&#8220;1&#8221;，如果所有位都为&#8220;1&#8221;，则该机地址是广播地址，而非主机的<br>地址。 <br>　　C、主机标识的各个位不能都为&#8220;0&#8221;，如果各个位都为&#8220;0&#8221;，则表示&#8220;只有这个网络&#8221;，而这个网<br>络上没有任何主机。 <br>　　四、IP子网掩码概述<br>　　1.子网掩码的概念 <br>　　子网掩码是一个32位地址，用于屏蔽IP地址的一部分以区别网络标识和主机标识，并说明该IP地址是<br>在局域网上，还是在远程网上。 <br>　　2.确定子网掩码数 <br>　　用于子网掩码的位数决定于可能的子网数目和每个子网的主机数目。在定义子网掩码前，必须弄清楚<br>本来使用的子网数和主机数目。 <br>　　定义子网掩码的步骤为： <br>　　A、确定哪些组地址归我们使用。比如我们申请到的网络号为&#8220;210.73.a.b&#8221;，该网络地址为c类IP地<br>址，网络标识为&#8220;210.73&#8221;，主机标识为&#8220;a.b&#8221;。 <br>　　B、根据我们现在所需的子网数以及将来可能扩充到的子网数，用宿主机的一些位来定义子网掩码。<br>比如我们现在需要12个子网，将来可能需要16个。用第三个字节的前四位确定子网掩码。前四位都置为&#8220;<br>1&#8221;，即第三个字节为&#8220;11110000&#8221;，这个数我们暂且称作新的二进制子网掩码。 <br>　　C、把对应初始网络的各个位都置为&#8220;1&#8221;，即前两个字节都置为&#8220;1&#8221;，第四个字节都置为&#8220;0&#8221;，则<br>子网掩码的间断二进制形式为：&#8220;11111111.11111111.11110000.00000000&#8221; <br>　　D、把这个数转化为间断十进制形式为：&#8220;255.255.240.0&#8221; <br>这个数为该网络的子网掩码。 <br>3.IP掩码的标注 <br>　　A、无子网的标注法 <br>　　对无子网的IP地址，可写成主机号为0的掩码。如IP地址210.73.140.5，掩码为255.255.255.0，也可<br>以缺省掩码，只写IP地址。 <br>　　B、有子网的标注法 <br>　　有子网时，一定要二者配对出现。以C类地址为例。 <br>　　1.IP地址中的前3个字节表示网络号，后一个字节既表明子网号，又说明主机号，还说明两个IP地址<br>是否属于一个网段。如果属于同一网络区间，这两个地址间的信息交换就不通过路由器。如果不属同一网<br>络区间，也就是子网号不同，两个地址的信息交换就要通过路由器进行。例如：对于IP地址为<br>210.73.140.5的主机来说，其主机标识为00000101，对于IP地址为210.73.140.16的主机来说它的主机标<br>识为00010000，以上两个主机标识的前面三位全是000，说明这两个IP地址在同一个网络区域中。<br>　　主机地址，例如?10.73.60.1的主机标识为00000001，210.73.60.252的主机标识为11111100，这两个<br>主机标识的前面三位000与011不同，说明二者在不同的网络区域，要交换信息需要通过路由器。其子网上<br>主机号各为1和252。 <br>　　2.掩码的功用是说明有子网和有几个子网，但子网数只能表示为一个范围，不能确切讲具体几个子网<br>，掩码不说明具体子网号，有子网的掩码格式(对C类地址):主机标识前几位为子网号，后面不写主机，全<br>写0。 <br>　　五、IP的其他事项　　 <br>　　1.一般国际互联网信息中心在分配IP地址时是按照网络来分配的，因此只有说到网络地址时才能使用<br>A类、B类、C类的说法； <br>　　2.在分配网络地址时，网络标识是固定的，而计算机标识是可以在一定范围内变化的，下面是三类网<br>络地址的组成形式： <br>　　　　A类地址：73.0.0.0 <br>　　　　B类地址：160.153.0.0 <br>　　　　C类地址：210.73.140.0 <br>　　　　上述中的每个0均可以在0~255之间进行变化。 <br>　　3.因为IP地址的前三位数字已决定了一个IP地址是属于何种类型的网络，所以A类网络地址将无法再<br>分成B类IP地址，B类IP地址也不能再分成C类IP地址。 <br>　　4.在谈到某一特定的计算机IP地址时不宜使用A类、B类、C类的说法，但可以说主机地址是属于哪一<br>个A类、B类、C类网络了。 <br>　　通过上面的学习，大家对IP地址肯定有了了解。有了IP地址大家就可以发送电子邮件了，并且可以获<br>得Internet网上的其他信息，例如可以获得Internet上的WWW服务、BBS服务、FTP服务等等。<br>
<img src ="http://www.cppblog.com/finehai/aggbug/90442.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/finehai/" target="_blank">Bluesea</a> 2009-07-18 19:15 <a href="http://www.cppblog.com/finehai/archive/2009/07/18/90442.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>