<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>网络技术</title><link>http://blog.vckbase.com/wangjun/category/167.html</link><description>网络技术</description><managingEditor>王骏的BLOG</managingEditor><dc:language>af</dc:language><generator>.Text Version 0.958.2004.214</generator><item><dc:creator>王骏的BLOG</dc:creator><title>多socket情况下的串行accept[转载]</title><link>http://blog.vckbase.com/wangjun/articles/5081.html</link><pubDate>Fri, 29 Apr 2005 08:26:00 GMT</pubDate><guid>http://blog.vckbase.com/wangjun/articles/5081.html</guid><wfw:comment>http://blog.vckbase.com/wangjun/comments/5081.html</wfw:comment><comments>http://blog.vckbase.com/wangjun/articles/5081.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.vckbase.com/wangjun/comments/commentRss/5081.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/wangjun/services/trackbacks/5081.html</trackback:ping><description>这里要说的是Unix socket API的一个缺点。假设，网站服务器使用了多个Listen语句以监听多个端口或者多个地址， Apache会使用select(2)以检测每个socket是否就绪。 select(2)会表明一个socket有 0 或者 至少一个 连接正等候处理。 由于Apache的模型是多子进程的，所有空闲进程会同时检测新的连接。 一个很天真的实现方法是这样的(这些例子并不是源代码，只是为了说明问题而已):&lt;BR&gt;&lt;BR&gt;
&lt;DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"&gt;
&lt;DIV&gt;&lt;IMG id=Codehighlighter1_9_609_Open_Image onclick="this.style.display='none'; Codehighlighter1_9_609_Open_Text.style.display='none'; Codehighlighter1_9_609_Closed_Image.style.display='inline'; Codehighlighter1_9_609_Closed_Text.style.display='inline';" src="/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top&gt;&lt;IMG id=Codehighlighter1_9_609_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_9_609_Closed_Text.style.display='none'; Codehighlighter1_9_609_Open_Image.style.display='inline'; Codehighlighter1_9_609_Open_Text.style.display='inline';" src="/Images/OutliningIndicators/ContractedBlock.gif" align=top&gt;&lt;SPAN style="COLOR: #0000ff"&gt;for&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;(;;)&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_9_609_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"&gt;&lt;IMG src="/Images/dot.gif"&gt;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_9_609_Open_Text&gt;&lt;SPAN style="COLOR: #000000"&gt;{&lt;BR&gt;&lt;IMG id=Codehighlighter1_24_571_Open_Image onclick="this.style.display='none'; Codehighlighter1_24_571_Open_Text.style.display='none'; Codehighlighter1_24_571_Closed_Image.style.display='inline'; Codehighlighter1_24_571_Closed_Text.style.display='inline';" src="/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top&gt;&lt;IMG id=Codehighlighter1_24_571_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_24_571_Closed_Text.style.display='none'; Codehighlighter1_24_571_Open_Image.style.display='inline'; Codehighlighter1_24_571_Open_Text.style.display='inline';" src="/Images/OutliningIndicators/ContractedSubBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;for&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;(;;)&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_24_571_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"&gt;&lt;IMG src="/Images/dot.gif"&gt;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_24_571_Open_Text&gt;&lt;SPAN style="COLOR: #000000"&gt;{&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fd_set&amp;nbsp;accept_fds;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FD_ZERO&amp;nbsp;(&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;accept_fds);&lt;BR&gt;&lt;IMG id=Codehighlighter1_139_182_Open_Image onclick="this.style.display='none'; Codehighlighter1_139_182_Open_Text.style.display='none'; Codehighlighter1_139_182_Closed_Image.style.display='inline'; Codehighlighter1_139_182_Closed_Text.style.display='inline';" src="/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top&gt;&lt;IMG id=Codehighlighter1_139_182_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_139_182_Closed_Text.style.display='none'; Codehighlighter1_139_182_Open_Image.style.display='inline'; Codehighlighter1_139_182_Open_Text.style.display='inline';" src="/Images/OutliningIndicators/ContractedSubBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;for&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;(i&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;first_socket;&amp;nbsp;i&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;last_socket;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;++&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;i)&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_139_182_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"&gt;&lt;IMG src="/Images/dot.gif"&gt;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_139_182_Open_Text&gt;&lt;SPAN style="COLOR: #000000"&gt;{&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FD_SET&amp;nbsp;(i,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;accept_fds);&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rc&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;select&amp;nbsp;(last_socket&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;+&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;1&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;accept_fds,&amp;nbsp;NULL,&amp;nbsp;NULL,&amp;nbsp;NULL);&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;(rc&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;1&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;)&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;continue&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new_connection&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;-&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;1&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;;&lt;BR&gt;&lt;IMG id=Codehighlighter1_365_524_Open_Image onclick="this.style.display='none'; Codehighlighter1_365_524_Open_Text.style.display='none'; Codehighlighter1_365_524_Closed_Image.style.display='inline'; Codehighlighter1_365_524_Closed_Text.style.display='inline';" src="/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top&gt;&lt;IMG id=Codehighlighter1_365_524_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_365_524_Closed_Text.style.display='none'; Codehighlighter1_365_524_Open_Image.style.display='inline'; Codehighlighter1_365_524_Open_Text.style.display='inline';" src="/Images/OutliningIndicators/ContractedSubBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;for&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;(i&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;first_socket;&amp;nbsp;i&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;last_socket;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;++&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;i)&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_365_524_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"&gt;&lt;IMG src="/Images/dot.gif"&gt;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_365_524_Open_Text&gt;&lt;SPAN style="COLOR: #000000"&gt;{&lt;BR&gt;&lt;IMG id=Codehighlighter1_406_514_Open_Image onclick="this.style.display='none'; Codehighlighter1_406_514_Open_Text.style.display='none'; Codehighlighter1_406_514_Closed_Image.style.display='inline'; Codehighlighter1_406_514_Closed_Text.style.display='inline';" src="/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top&gt;&lt;IMG id=Codehighlighter1_406_514_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_406_514_Closed_Text.style.display='none'; Codehighlighter1_406_514_Open_Image.style.display='inline'; Codehighlighter1_406_514_Open_Text.style.display='inline';" src="/Images/OutliningIndicators/ContractedSubBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;(FD_ISSET&amp;nbsp;(i,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;accept_fds))&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_406_514_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"&gt;&lt;IMG src="/Images/dot.gif"&gt;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_406_514_Open_Text&gt;&lt;SPAN style="COLOR: #000000"&gt;{&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new_connection&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;accept&amp;nbsp;(i,&amp;nbsp;NULL,&amp;nbsp;NULL);&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;(new_connection&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;!=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;-&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;1&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;)&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;break&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;(new_connection&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;!=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;-&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;1&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;)&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;break&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;process&amp;nbsp;the&amp;nbsp;new_connection;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;BR&gt;这种天真的实现方法有一个严重的&amp;#8220;饥饿&amp;#8221;问题。如果多个子进程同时执行这个循环， 则在多个请求之间，进程会被阻塞在select， 随即进入循环并试图accept此连接， 但是只有一个进程可以成功执行(假设还有一个连接就绪), 而其余的则会被阻塞在accept。 这样，只有那一个socket可以处理请求，而其他都被锁住了，直到有足够多的请求将它们唤醒。 此&amp;#8220;饥饿&amp;#8221;问题在PR#467中有专门的讲述。 至少有两种解决方案.&lt;/P&gt;
&lt;P&gt;一种方案是使用非阻塞型socket，不阻塞子进程并允许它立即继续执行。 但是，这样会浪费CPU时间。设想一下，select有10个子进程， 当一个请求到达的时候，其中9个也被唤醒，并试图accept此连接， 继而进入select循环，而无所事事，并且其间， 没有一个子进程能够响应出现在其他socket的请求，直到退出select循环。 总之，这个方案效率并不怎么高，除非你有很多的CPU，而且开了很多的子进程。&lt;/P&gt;
&lt;P&gt;另一种也是Apache所使用的方案是，使内层循环的入口串行化，形如 (不同之处以高亮度显示):&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"&gt;
&lt;DIV&gt;&lt;IMG id=Codehighlighter1_9_658_Open_Image onclick="this.style.display='none'; Codehighlighter1_9_658_Open_Text.style.display='none'; Codehighlighter1_9_658_Closed_Image.style.display='inline'; Codehighlighter1_9_658_Closed_Text.style.display='inline';" src="/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top&gt;&lt;IMG id=Codehighlighter1_9_658_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_9_658_Closed_Text.style.display='none'; Codehighlighter1_9_658_Open_Image.style.display='inline'; Codehighlighter1_9_658_Open_Text.style.display='inline';" src="/Images/OutliningIndicators/ContractedBlock.gif" align=top&gt;&lt;SPAN style="COLOR: #0000ff"&gt;for&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;(;;)&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_9_658_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"&gt;&lt;IMG src="/Images/dot.gif"&gt;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_9_658_Open_Text&gt;&lt;SPAN style="COLOR: #000000"&gt;{&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;accept_mutex_on&amp;nbsp;();&lt;BR&gt;&lt;IMG id=Codehighlighter1_48_595_Open_Image onclick="this.style.display='none'; Codehighlighter1_48_595_Open_Text.style.display='none'; Codehighlighter1_48_595_Closed_Image.style.display='inline'; Codehighlighter1_48_595_Closed_Text.style.display='inline';" src="/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top&gt;&lt;IMG id=Codehighlighter1_48_595_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_48_595_Closed_Text.style.display='none'; Codehighlighter1_48_595_Open_Image.style.display='inline'; Codehighlighter1_48_595_Open_Text.style.display='inline';" src="/Images/OutliningIndicators/ContractedSubBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;for&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;(;;)&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_48_595_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"&gt;&lt;IMG src="/Images/dot.gif"&gt;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_48_595_Open_Text&gt;&lt;SPAN style="COLOR: #000000"&gt;{&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fd_set&amp;nbsp;accept_fds;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FD_ZERO&amp;nbsp;(&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;accept_fds);&lt;BR&gt;&lt;IMG id=Codehighlighter1_163_206_Open_Image onclick="this.style.display='none'; Codehighlighter1_163_206_Open_Text.style.display='none'; Codehighlighter1_163_206_Closed_Image.style.display='inline'; Codehighlighter1_163_206_Closed_Text.style.display='inline';" src="/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top&gt;&lt;IMG id=Codehighlighter1_163_206_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_163_206_Closed_Text.style.display='none'; Codehighlighter1_163_206_Open_Image.style.display='inline'; Codehighlighter1_163_206_Open_Text.style.display='inline';" src="/Images/OutliningIndicators/ContractedSubBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;for&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;(i&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;first_socket;&amp;nbsp;i&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;last_socket;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;++&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;i)&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_163_206_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"&gt;&lt;IMG src="/Images/dot.gif"&gt;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_163_206_Open_Text&gt;&lt;SPAN style="COLOR: #000000"&gt;{&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FD_SET&amp;nbsp;(i,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;accept_fds);&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rc&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;select&amp;nbsp;(last_socket&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;+&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;1&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;accept_fds,&amp;nbsp;NULL,&amp;nbsp;NULL,&amp;nbsp;NULL);&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;(rc&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;1&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;)&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;continue&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new_connection&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;-&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;1&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;;&lt;BR&gt;&lt;IMG id=Codehighlighter1_389_548_Open_Image onclick="this.style.display='none'; Codehighlighter1_389_548_Open_Text.style.display='none'; Codehighlighter1_389_548_Closed_Image.style.display='inline'; Codehighlighter1_389_548_Closed_Text.style.display='inline';" src="/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top&gt;&lt;IMG id=Codehighlighter1_389_548_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_389_548_Closed_Text.style.display='none'; Codehighlighter1_389_548_Open_Image.style.display='inline'; Codehighlighter1_389_548_Open_Text.style.display='inline';" src="/Images/OutliningIndicators/ContractedSubBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;for&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;(i&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;first_socket;&amp;nbsp;i&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;lt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;last_socket;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;++&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;i)&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_389_548_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"&gt;&lt;IMG src="/Images/dot.gif"&gt;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_389_548_Open_Text&gt;&lt;SPAN style="COLOR: #000000"&gt;{&lt;BR&gt;&lt;IMG id=Codehighlighter1_430_538_Open_Image onclick="this.style.display='none'; Codehighlighter1_430_538_Open_Text.style.display='none'; Codehighlighter1_430_538_Closed_Image.style.display='inline'; Codehighlighter1_430_538_Closed_Text.style.display='inline';" src="/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top&gt;&lt;IMG id=Codehighlighter1_430_538_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_430_538_Closed_Text.style.display='none'; Codehighlighter1_430_538_Open_Image.style.display='inline'; Codehighlighter1_430_538_Open_Text.style.display='inline';" src="/Images/OutliningIndicators/ContractedSubBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;(FD_ISSET&amp;nbsp;(i,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;accept_fds))&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_430_538_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"&gt;&lt;IMG src="/Images/dot.gif"&gt;&lt;/SPAN&gt;&lt;SPAN id=Codehighlighter1_430_538_Open_Text&gt;&lt;SPAN style="COLOR: #000000"&gt;{&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new_connection&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;accept&amp;nbsp;(i,&amp;nbsp;NULL,&amp;nbsp;NULL);&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;(new_connection&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;!=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;-&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;1&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;)&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;break&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;(new_connection&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;!=&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;-&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;1&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;)&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;break&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #000000"&gt;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;accept_mutex_off&amp;nbsp;();&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/InBlock.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;process&amp;nbsp;the&amp;nbsp;new_connection;&lt;BR&gt;&lt;IMG src="/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;BR&gt;函数accept_mutex_on和accept_mutex_off 实现了一个互斥的信号灯，在任何时刻只能为一个进程所拥有。实现互斥的方法有多种， 其定义位于src/conf.h(1.3以前的版本) 或src/include/ap_config.h (1.3及更新版本)中。在有些根本没有锁定机制的体系中，使用多个Listen指令就是不安全的。&lt;BR&gt;&lt;img src ="http://blog.vckbase.com/wangjun/aggbug/5081.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>王骏的BLOG</dc:creator><title>可以解决IE的一些无法处理脚本的问题</title><link>http://blog.vckbase.com/wangjun/articles/969.html</link><pubDate>Sun, 10 Oct 2004 14:26:00 GMT</pubDate><guid>http://blog.vckbase.com/wangjun/articles/969.html</guid><wfw:comment>http://blog.vckbase.com/wangjun/comments/969.html</wfw:comment><comments>http://blog.vckbase.com/wangjun/articles/969.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.vckbase.com/wangjun/comments/commentRss/969.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/wangjun/services/trackbacks/969.html</trackback:ping><description>建一个批处理
&lt;br&gt;&lt;br&gt;
&lt;br&gt;Regsvr32 actxprxy.dll
&lt;br&gt;Regsvr32 shdocvw.dll
&lt;br&gt;Regsvr32 URLMON.DLL
&lt;br&gt;Regsvr32 actxprxy.dll
&lt;br&gt;Regsvr32 shdocvw.dll
&lt;br&gt;Regsvr32 oleaut32.dll
&lt;br&gt;rundll32.exe advpack.dll /DelNodeRunDLL32 C:\WINNT\System32\dacui.dll
&lt;br&gt;rundll32.exe advpack.dll /DelNodeRunDLL32 C:\WINNT\Catroot\icatalog.mdb
&lt;br&gt;Regsvr32 setupwbv.dll
&lt;br&gt;Regsvr32 wininet.dll
&lt;br&gt;Regsvr32 comcat.dll
&lt;br&gt;Regsvr32 shdoc401.dll
&lt;br&gt;Regsvr32 shdoc401.dll /i
&lt;br&gt;Regsvr32 asctrls.ocx
&lt;br&gt;Regsvr32 oleaut32.dll
&lt;br&gt;Regsvr32 shdocvw.dll /I
&lt;br&gt;Regsvr32 shdocvw.dll
&lt;br&gt;Regsvr32 browseui.dll
&lt;br&gt;Regsvr32 browseui.dll /I
&lt;br&gt;Regsvr32 msrating.dll
&lt;br&gt;Regsvr32 mlang.dll
&lt;br&gt;Regsvr32 hlink.dll
&lt;br&gt;Regsvr32 mshtml.dll
&lt;br&gt;Regsvr32 mshtmled.dll
&lt;br&gt;Regsvr32 urlmon.dll
&lt;br&gt;Regsvr32 plugin.ocx
&lt;br&gt;Regsvr32 sendmail.dll
&lt;br&gt;Regsvr32 comctl32.dll /i
&lt;br&gt;Regsvr32 inetcpl.cpl /i
&lt;br&gt;Regsvr32 mshtml.dll /i
&lt;br&gt;Regsvr32 scrobj.dll
&lt;br&gt;Regsvr32 mmefxe.ocx
&lt;br&gt;Regsvr32 proctexe.ocx mshta.exe /register
&lt;br&gt;Regsvr32 corpol.dll
&lt;br&gt;Regsvr32 jscript.dll
&lt;br&gt;Regsvr32 msxml.dll
&lt;br&gt;Regsvr32 imgutil.dll
&lt;br&gt;Regsvr32 thumbvw.dll
&lt;br&gt;Regsvr32 cryptext.dll
&lt;br&gt;Regsvr32 rsabase.dll
&lt;br&gt;Regsvr32 triedit.dll
&lt;br&gt;Regsvr32 dhtmled.ocx
&lt;br&gt;Regsvr32 inseng.dll
&lt;br&gt;Regsvr32 iesetup.dll /i
&lt;br&gt;Regsvr32 hmmapi.dll
&lt;br&gt;Regsvr32 cryptdlg.dll
&lt;br&gt;Regsvr32 actxprxy.dll
&lt;br&gt;Regsvr32 dispex.dll
&lt;br&gt;Regsvr32 occache.dll
&lt;br&gt;Regsvr32 occache.dll /i
&lt;br&gt;Regsvr32 iepeers.dll
&lt;br&gt;Regsvr32 wininet.dll /i
&lt;br&gt;Regsvr32 urlmon.dll /i
&lt;br&gt;Regsvr32 digest.dll /i
&lt;br&gt;Regsvr32 cdfview.dll
&lt;br&gt;Regsvr32 webcheck.dll
&lt;br&gt;Regsvr32 mobsync.dll
&lt;br&gt;Regsvr32 pngfilt.dll
&lt;br&gt;Regsvr32 licmgr10.dll
&lt;br&gt;Regsvr32 icmfilter.dll
&lt;br&gt;Regsvr32 hhctrl.ocx
&lt;br&gt;Regsvr32 inetcfg.dll
&lt;br&gt;Regsvr32 trialoc.dll
&lt;br&gt;Regsvr32 tdc.ocx
&lt;br&gt;Regsvr32 MSR2C.DLL
&lt;br&gt;Regsvr32 msident.dll
&lt;br&gt;Regsvr32 msieftp.dll
&lt;br&gt;Regsvr32 xmsconf.ocx
&lt;br&gt;Regsvr32 ils.dll
&lt;br&gt;Regsvr32 msoeacct.dll
&lt;br&gt;Regsvr32 wab32.dll
&lt;br&gt;Regsvr32 wabimp.dll
&lt;br&gt;Regsvr32 wabfind.dll
&lt;br&gt;Regsvr32 oemiglib.dll
&lt;br&gt;Regsvr32 directdb.dll
&lt;br&gt;Regsvr32 inetcomm.dll
&lt;br&gt;Regsvr32 msoe.dll
&lt;br&gt;Regsvr32 oeimport.dll
&lt;br&gt;Regsvr32 msdxm.ocx
&lt;br&gt;Regsvr32 dxmasf.dll
&lt;br&gt;Regsvr32 laprxy.dll
&lt;br&gt;Regsvr32 l3codecx.ax
&lt;br&gt;Regsvr32 acelpdec.ax
&lt;br&gt;Regsvr32 mpg4ds32.ax
&lt;br&gt;Regsvr32 voxmsdec.ax
&lt;br&gt;Regsvr32 danim.dll
&lt;br&gt;Regsvr32 Daxctle.ocx
&lt;br&gt;Regsvr32 lmrt.dll
&lt;br&gt;Regsvr32 datime.dll
&lt;br&gt;Regsvr32 dxtrans.dll
&lt;br&gt;Regsvr32 dxtmsft.dll
&lt;br&gt;Regsvr32 vgx.dll
&lt;br&gt;Regsvr32 WEBPOST.DLL
&lt;br&gt;Regsvr32 WPWIZDLL.DLL
&lt;br&gt;Regsvr32 POSTWPP.DLL
&lt;br&gt;Regsvr32 CRSWPP.DLL
&lt;br&gt;Regsvr32 FTPWPP.DLL
&lt;br&gt;Regsvr32 FPWPP.DLL
&lt;br&gt;Regsvr32 FLUPL.OCX
&lt;br&gt;Regsvr32 wshom.ocx
&lt;br&gt;Regsvr32 wshext.dll
&lt;br&gt;Regsvr32 vbscript.dll
&lt;br&gt;Regsvr32 scrrun.dll mstinit.exe /setup
&lt;br&gt;Regsvr32 msnsspc.dll /SspcCreateSspiReg
&lt;br&gt;Regsvr32 msapsspc.dll /SspcCreateSspiReg
&lt;img src ="http://blog.vckbase.com/wangjun/aggbug/969.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>王骏的BLOG</dc:creator><title>AT命令集(转载)</title><link>http://blog.vckbase.com/wangjun/articles/868.html</link><pubDate>Wed, 22 Sep 2004 03:28:00 GMT</pubDate><guid>http://blog.vckbase.com/wangjun/articles/868.html</guid><wfw:comment>http://blog.vckbase.com/wangjun/comments/868.html</wfw:comment><comments>http://blog.vckbase.com/wangjun/articles/868.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.vckbase.com/wangjun/comments/commentRss/868.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/wangjun/services/trackbacks/868.html</trackback:ping><description>&lt;BLOCKQUOTE&gt;
&lt;H3&gt;&lt;B&gt;AT命令集&lt;/B&gt;&lt;/H3&gt;
&lt;H3&gt;&lt;B&gt;(工作中经常用到，以备后忘，转载自&lt;A href="http://www.quantum.com.hk/mdm_htm/manuals/cat.htm"&gt;http://www.quantum.com.hk/mdm_htm/manuals/cat.htm&lt;/A&gt;)&lt;/B&gt;&lt;/H3&gt;AT命令使计算机或终端与调制解调器通讯。通讯软件是你与调制解调器间的交接口方法,请阅读这一章您可以按照自己的需要设置您的调制解调器 
&lt;P&gt;装入通讯软件包并进入终端或交互模式后,就可以发出工业标准AT指令了,(请参阅通讯软件手册)。所有命令行必须由ASCII字符&amp;#8220;AT&amp;#8221;开始并由 &lt;ENTER&gt;结束。除了A/指令和推出(缺省为+++)。这些将在后面讨论。字母"AT"用以提醒调制解调器注意，其后将有一条或多条命令出现, "AT"及其后的字母可以是大写或小写。&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;dir&gt;
&lt;dir&gt;?
&lt;table BORDER COLS=1 WIDTH="61%" HEIGHT="70" &gt;
&lt;tr&gt;
&lt;td HEIGHT="50"&gt;
&lt;br&gt;&lt;b&gt;???????????
AT必须同为大写或小写。如"At"或"aT"是不允许的。&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/dir&gt;
&lt;/dir&gt;
&lt;blockquote&gt;??? 一串命令可以写在一行里。为了便于阅读可以加或不加空格。命令中或命令间的空格会被忽略，命令行的最多字符数为39(包括"AT")。在输入一条命令期间，可以用退格键(backspace)改正除"AT"以外的错误。
&lt;p&gt;若命令行中任一处出现语法错误，本行其后的内容将被忽略，并返回ERROR。大数带有超出正常范围的参数的命令将不被接收并返回
ERROR.
&lt;p&gt;本章列出所有设置调制解调器的命令。包括控制ACTIVE调制解调器的贺氏标准AT命令集。贺氏V系列命令集和扩展命令集
&lt;p&gt;&lt;b&gt;AT命令集的描述&lt;/b&gt;
&lt;p&gt;??&lt;b&gt;??? 符号 * 表明该命令的设置可用AT&amp;Wn命令存于两个用户方案中的一个&lt;/b&gt;
&lt;br&gt;?&lt;b&gt;&lt;/b&gt;
&lt;p&gt;&lt;b&gt;A/??????? 重执行命令&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;重执行前一AT命令行，主要用于连接时占线，无应答或号码错误。这一命令必须单独构成一命令行并由"/"字符结束,(&lt;Enter&gt;
不能用于结束命令)。&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;b&gt;&lt;/b&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;+++?????? 退出字符 缺省:+&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;切换调制解调器从在线状态到命令状态，而不会中断数据连接。可以通过改变S寄存器S2的值来改变这一字符。&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;b&gt;&lt;/b&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;AT=x????? 写入被选的S寄存器&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;这一命令将数值x写入当前被选的S寄存器，一个S寄存器可由ATSn命令选择，若
x 是一个数字,所有S 寄存器将返回 OK 响应。&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;b&gt;&lt;/b&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;AT??????? 读被选的S寄存器&lt;/b&gt;
&lt;blockquote&gt;? 这一命令读并且显示被选的S寄存器的内容。一个S寄存器可由ATSn命令选择。&lt;/blockquote&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;ATA?????? 应答&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;它必须是命令行中的最后一条指令。调制解调器在应答方式下继续执行连接程序。在与远端调制解调器交换载波后进入连接状态,如果在由寄存器S7规定的时间内(缺省值=50秒)没有检测到载波,
调制解调器将挂机。在连接过程中，通过DTE输入的任何一个字母都将中断这一命令。&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;ATBn*???? 选择ITU-T或Bell模式 缺省=0&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;?ATB0 选择在1200和300bps速率下通讯的ITU-T V.22和V.21协议
&lt;br&gt;?ATB1 选择在1200和300bps速率下通讯的Bell 212A和103协议&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;ATCn????? 载波控制缺省=1&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;包含这一命令只是为了保证兼容性，执行号只是返回一结果码而没有其它作用。
&lt;br&gt;ATC1 正常传输载波切换&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;b&gt;&lt;/b&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;ATDn????? 拨号&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;它必须是命令行中的最后一条指令, ATD命令使调制解调器摘机后,
根据输入的参数拨号,以建立连接。
&lt;p&gt;如果不带参数，调制解调器摘机后，不拨号进入发起方式。
&lt;p&gt;使用标点可使命令更易读懂。圆括号,连字符和空格符会被忽略。拔号命令行中如果出现了非法字符，则该字符及其后的内容将被忽略。调制解调器允许的拨号命令长度为36个字符。
&lt;p&gt;参数：0-9 A B C D * # L P T R ! @ W , ; ^ S=n
&lt;br&gt;0-9???? DTMF 符号0到9
&lt;br&gt;A-D???? DTMF 符号A,B,C和D。在一些国家中不使用这些符号
&lt;br&gt;*?????? "星"号(仅用于音频拨号)
&lt;br&gt;#?????? "#"号(仅用于音频拨号)
&lt;br&gt;J?????? 为本次呼叫执行在可提供的最高速率下的MNP10链路协商(可选)
&lt;br&gt;K?????? 使本次呼叫MNP10链路协商期间电源电平可调(可选)
&lt;br&gt;L?????? 重拨上一次拨过的号码
&lt;br&gt;P?????? 脉冲拨号
&lt;br&gt;T?????? 双音频拨号
&lt;br&gt;R?????? 逆叫方式。允许调制解调器使用应答方式呼叫只能作为发起使用的调制解调???????
器, 必须作为命令行中的最后一个字符输入。
&lt;br&gt;!?????? 使调制解调器按照S29中规定的值挂机一段时间再摘机。
&lt;br&gt;@?????? 使调制解调器等待5秒钟的无声回答
&lt;br&gt;w?????? 按照寄存器S7中规定的时间，在拨号前等待拨号音。
&lt;br&gt;,?????? 在拨号过程中，按照寄存器S8中规定的时间,暂停
&lt;br&gt;;?????? 拨号后返回命令状态
&lt;br&gt;^?????? 打开呼叫音
&lt;br&gt;()????? 被忽视，用于格式化号码串
&lt;br&gt;-?????? 被忽视，用于格式化号码串
&lt;br&gt;&lt;space&gt; 被忽视,用于格式化号码串
&lt;br&gt;S=n???? 用AT&amp;Zn 命令存在地址n处的号码拨号&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;b&gt;&lt;/b&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;ATE*???? 命令回应??????????
缺省:1&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;ATE0 关闭命令回应
&lt;br&gt;ATE1 打开 命令回应&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;b&gt;&lt;/b&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;ATHn???? 摘挂机控制??????
缺省:0&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;ATH0 使调制解调器挂机
&lt;br&gt;ATH1 当调制解调器处于挂机状态，使调制解调器摘机，返回响 OK，等待进一步的命令。&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;b&gt;&lt;/b&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;ATIn???? 识别&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;I0 报告产品代码
&lt;br&gt;I1 报告ROM中预先计算的校验和
&lt;br&gt;I2 计算校验和并与ROM中的校验和比较,返回"OK"或"ERROR"结果码
&lt;br&gt;I3 报告固件修正
&lt;br&gt;I4 报告OEM定义的识别串
&lt;br&gt;I5 报告国家代码参数
&lt;br&gt;I6 报告固件修正
&lt;br&gt;I7 报告调制解调器数据泵类型&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;b&gt;&lt;/b&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;ATLn*??? 扬声器音量??????
缺省:2&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;ATL0 扬声器低音量
&lt;br&gt;ATL1 扬声器低音量
&lt;br&gt;ATL2 扬声器中音量
&lt;br&gt;ATL3 扬声器高音量&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;b&gt;&lt;/b&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;ATMn*??? 扬声器控制??????
缺省:1&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;ATM0 关闭扬声器
&lt;br&gt;ATM1 扬声器在呼叫建立握手阶段打开至检测到来自于远端调制解调器的载波后关闭
&lt;br&gt;ATM2 扬声器持续开
&lt;br&gt;ATM3 扬声器在应答期间打开。当检测到来自于远端的调制解调器的载波和拨号时关闭&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;b&gt;&lt;/b&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;ATNn*???? 调制握手??????
缺省:1&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;&lt;b&gt;?&lt;/b&gt;ATN0 要求调制解调器S37选择连接速率,若S37＝0,则连接速率必须与发出的上一条AT命令的速率相匹配。如果所选择的速率可用不止一个通讯标准实现(如Bell212A或ITU-T
V.22 速率在 1200bps)调制解调器同时参考ATB 命令选择。
&lt;p&gt;ATN1 允许时使用双方调制解调器都支持的任一速率握手，使能够自动检测。在这一方式下，ATB命令被忽视，调制解调器只用ITU-T方式连接。&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;b&gt;&lt;/b&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;ATOn???? 进入数据在现状态 缺省:0&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;ATO0 使调制解调器从命令在现状态直接返回数据在线状态,不经过自动均衡。
&lt;br&gt;ATO1 使调制解调器从命令在现状态返回数据在状态,经过自动均衡。&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;b&gt;&lt;/b&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;ATP*???? 设脉冲拨号为缺省&lt;/b&gt;
&lt;br&gt;&lt;b&gt;&lt;/b&gt;?&lt;b&gt;&lt;/b&gt;
&lt;p&gt;&lt;b&gt;ATQn*??? 结果码显示???????
缺省:0&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;ATQ0 调制解调器向DTE发送结果码
&lt;br&gt;ATQ1 禁止调制解调器向DTE发送结果码&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;table BORDER COLS=1 WIDTH="68%" HEIGHT="34" &gt;
&lt;tr&gt;
&lt;td HEIGHT="27"&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;&lt;b&gt;???????? 参阅调制解调器结果码一节的详细说明&lt;/b&gt;&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;blockquote&gt;&lt;b&gt;ATSn???? 设S寄存器n为缺省寄存器&lt;/b&gt;
&lt;br&gt;?&lt;b&gt;&lt;/b&gt;
&lt;p&gt;&lt;b&gt;ATSn???? 读S寄存器&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;读S寄存器中的内容，所有的S寄存器都可以读&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;b&gt;&lt;/b&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;ATSn=x?? 写入S寄存器&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;将 x值写入指定的S寄存器n&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;b&gt;&lt;/b&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;ATT*???? 设音频拔号为缺省&lt;/b&gt;
&lt;br&gt;?&lt;b&gt;&lt;/b&gt;
&lt;p&gt;&lt;b&gt;ATVn*??? 结束码类型 (消息控制)???????
缺省&lt;/b&gt;:1
&lt;blockquote&gt;
&lt;blockquote&gt;ATV0 发送短型 (数字型) 结果码
&lt;br&gt;ATV1 发送长型 (字符型) 结果码&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;b&gt;&lt;/b&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;ATWn*??? 协商进程报告???????????????
缺省:0&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;ATW0 不报告纠错呼叫进程
&lt;br&gt;ATW1 报告纠错呼叫进程
&lt;br&gt;ATW2 不报告纠错呼叫进程，CONNECT xxxx指示DCE速率。&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;b&gt;&lt;/b&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;ATXn*???? 扩展结果码???????????
缺省:4&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;ATX0&lt;b&gt; &lt;/b&gt;调制解调器忽视拨号音和忙音。当由盲拨建立连接时，发送CONNECT信息。
&lt;p&gt;ATX1 调制解调器忽视拨号音和忙音。当由盲拨建立连接时，CONNECT XXXX 反映的是比特速率
&lt;p&gt;ATX2 调制解调器忽视忙音，但在拨号前等待拨号音，如果5秒钟内检测不到拨号音，则发送NO
DIAL TONE 信息，连接建立后 发送 CONNECT xxxx反映比特速率。
&lt;p&gt;ATX3 调制解调器忽视拨号音,若检测到忙音,发送BUSY信息,当由盲拨建立起连接时,
CONNECT XXXX 反映的是比特速率。
&lt;p&gt;ATX4 如果5秒钟内检测不到拨号音，发送NO DIAL TONE 讯息,检测到忙音, 发送BUSY信息。连接建立后发送CONNECT
XXXX 反映比特速率。&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;b&gt;&lt;/b&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;ATYn*???? 控制长间隔拆接????????
缺省:0&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;ATY0 不允许长间隔拆接
&lt;br&gt;ATY1 允许长间隔拆接&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;b&gt;&lt;/b&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;ATZn????? 复位???????????????
缺省:0&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;重新调出由用户方案规定的动态配置
&lt;br&gt;ATZ0 软复位并重新调出用户方案0
&lt;br&gt;ATZ1 软复位并重新调出用户方案1&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;b&gt;&lt;/b&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;AT&amp;An*??? 握手异常终止(备选)???
缺省:1&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;&lt;b&gt;?&lt;/b&gt;AT&amp;A0 在握手时禁止用户进行异常终止。当拨号或应答时，握手不能异常终止,只有DTR
信号下降。
&lt;p&gt;AT&amp;A1 用户可以在握手时进行异常终止.在接收到DTE的字符后,发起和应答可以在握手期间随时进行异常终止.&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;b&gt;&lt;/b&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;AT&amp;Cn*???? RS232-C DCD?????????
设置缺省:1&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;AT&amp;C0 DCD为ON，不论来自远端的调制解调器的数据载波的状态为何。
&lt;br&gt;AT&amp;C1 DCD 跟随来自于远端调制解调器的数据载波的状态&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;b&gt;&lt;/b&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;AT&amp;Dn*??? RS232-C DTR?????????
设置缺省:2&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;决定了调制解调器与来自串口的DTR信号相关的操作。由于跟踪DTR的下降引起的操作在下表列出:&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;table BORDER WIDTH="72%" HEIGHT="201" &gt;
&lt;tr&gt;
&lt;td WIDTH="20%"&gt;&lt;/td&gt;
&lt;td WIDTH="21%"&gt;
&lt;center&gt;&amp;D0?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="20%"&gt;
&lt;center&gt;&amp;D1?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="20%"&gt;
&lt;center&gt;&amp;D2?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="19%"&gt;
&lt;center&gt;&amp;D3?&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td WIDTH="20%"&gt;
&lt;center&gt;&amp;Q0?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="21%"&gt;
&lt;center&gt;NONE?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="20%"&gt;
&lt;center&gt;2?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="20%"&gt;
&lt;center&gt;3?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="19%"&gt;
&lt;center&gt;4?&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td WIDTH="20%" HEIGHT="22"&gt;
&lt;center&gt;&amp;Q1?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="21%" HEIGHT="22"&gt;
&lt;center&gt;1?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="20%" HEIGHT="22"&gt;
&lt;center&gt;2?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="20%" HEIGHT="22"&gt;
&lt;center&gt;3?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="19%" HEIGHT="22"&gt;
&lt;center&gt;4?&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td WIDTH="20%"&gt;
&lt;center&gt;&amp;Q2?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="21%"&gt;
&lt;center&gt;3?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="20%"&gt;
&lt;center&gt;3?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="20%"&gt;
&lt;center&gt;3?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="19%"&gt;
&lt;center&gt;3?&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td WIDTH="20%"&gt;
&lt;center&gt;&amp;Q3?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="21%"&gt;
&lt;center&gt;3?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="20%"&gt;
&lt;center&gt;3?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="20%"&gt;
&lt;center&gt;3?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="19%"&gt;
&lt;center&gt;3?&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td WIDTH="20%"&gt;
&lt;center&gt;&amp;Q4?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="21%"&gt;
&lt;center&gt;1?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="20%"&gt;
&lt;center&gt;2?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="20%"&gt;
&lt;center&gt;3?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="19%"&gt;
&lt;center&gt;4?&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td WIDTH="20%"&gt;
&lt;center&gt;&amp;Q5?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="21%"&gt;
&lt;center&gt;NONE?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="20%"&gt;
&lt;center&gt;2?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="20%"&gt;
&lt;center&gt;3?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="19%"&gt;
&lt;center&gt;4?&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td WIDTH="20%"&gt;
&lt;center&gt;&amp;Q6?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="21%"&gt;
&lt;center&gt;NONE?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="20%"&gt;
&lt;center&gt;2?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="20%"&gt;
&lt;center&gt;3?&lt;/center&gt;
&lt;/td&gt;
&lt;td WIDTH="19%"&gt;
&lt;center&gt;4?&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;dir&gt;
&lt;dir&gt;
&lt;blockquote&gt;1 调制解调器断开连接并发送结果码OK
&lt;br&gt;2 若在数据状态下,则进入命令状态,并发送结果码OK
&lt;br&gt;3 调制解调器断开连接并发送结果码OK, DTR 为 OFF时不能自动应答
&lt;br&gt;4 调制解调器执行热启动(即与ATZ命令相同)&lt;/blockquote&gt;
&lt;/dir&gt;
&lt;/dir&gt;
&lt;blockquote&gt;&lt;b&gt;&lt;/b&gt;?
&lt;br&gt;&lt;b&gt;AT&amp;Fn???? 重新调用工厂???????????
设置缺省:0&lt;/b&gt;&lt;/blockquote&gt;
&lt;dir&gt;
&lt;dir&gt;
&lt;blockquote&gt;&amp;F0 重新调用作为V.42bis自动可靠方式的出厂缺省设置
&lt;br&gt;&amp;F1 重新调用作为MNP5自动可靠方式的出厂缺省设置
&lt;br&gt;&amp;F2 重新调用作为DIRECT方式的出厂缺省设置
&lt;br&gt;&amp;F3 重新调用作为MNP10方式自动可靠方式的出厂缺省设置(可选)&lt;/blockquote&gt;
&lt;/dir&gt;
&lt;/dir&gt;
&lt;blockquote&gt;&lt;b&gt;&lt;/b&gt;?
&lt;br&gt;&lt;b&gt;AT&amp;Gn*??? 设置保护音???????????
缺省:0&lt;/b&gt;&lt;/blockquote&gt;
&lt;dir&gt;
&lt;dir&gt;
&lt;blockquote&gt;AT&amp;G0 无保护音
&lt;br&gt;AT&amp;G1 无保护音
&lt;br&gt;AT&amp;G2 1800HZ保护音&lt;/blockquote&gt;
&lt;/dir&gt;
&lt;/dir&gt;
&lt;blockquote&gt;&lt;b&gt;&lt;/b&gt;?
&lt;br&gt;&lt;b&gt;AT&amp;Jn*??? 电话插头选择?????????
缺省:0&lt;/b&gt;
&lt;br&gt;?
&lt;blockquote&gt;
&lt;blockquote&gt;包含这一命令只是基于兼容性的考虑，没有任何功能
&lt;br&gt;AT&amp;J0 不操作任何功能
&lt;br&gt;AT&amp;J1 不操作任何功能&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;b&gt;&lt;/b&gt;?
&lt;br&gt;&lt;b&gt;AT&amp;Kn*??? DTE/调制解调器流???
控制缺省:3&lt;/b&gt;&lt;/blockquote&gt;
&lt;dir&gt;
&lt;dir&gt;
&lt;blockquote&gt;AT&amp;K0 关闭流控制
&lt;br&gt;AT&amp;K3 使用RTS/CTS流控
&lt;br&gt;AT&amp;K4 使用XON/XOFF流控
&lt;br&gt;AT&amp;K5 使用透明XON/XOFF流控
&lt;br&gt;AT&amp;K6 使用RTS/CTS和XON/XOFF流控(作为传真方式下的缺省)&lt;/blockquote&gt;
&lt;/dir&gt;
&lt;/dir&gt;
&lt;blockquote&gt;&lt;b&gt;&lt;/b&gt;?
&lt;br&gt;&lt;b&gt;AT&amp;Ln*??? 传输线类型???????????
缺省:0&lt;/b&gt;&lt;/blockquote&gt;
&lt;dir&gt;
&lt;dir&gt;
&lt;blockquote&gt;AT&amp;L0 拨号线
&lt;br&gt;AT&amp;L1 二线专线 （备选）
&lt;br&gt;AT&amp;L2 四线专线 （备选）&lt;/blockquote&gt;
&lt;/dir&gt;
&lt;/dir&gt;
&lt;blockquote&gt;&lt;b&gt;&lt;/b&gt;?
&lt;br&gt;&lt;b&gt;AT&amp;Mn*??? 通讯方式&lt;/b&gt;&lt;/blockquote&gt;
&lt;dir&gt;
&lt;dir&gt;
&lt;blockquote&gt;与AT&amp;Q0-3相同&lt;/blockquote&gt;
&lt;/dir&gt;
&lt;/dir&gt;
&lt;blockquote&gt;&lt;b&gt;&lt;/b&gt;?
&lt;br&gt;&lt;b&gt;AT&amp;Pn*??? 拨号脉冲占空比???????
缺省:0&lt;/b&gt;&lt;/blockquote&gt;
&lt;dir&gt;
&lt;dir&gt;
&lt;blockquote&gt;AT&amp;P0 39％61％占空比@10PPS
&lt;br&gt;AT&amp;P1 33％67％占空比@10PPS
&lt;br&gt;AT&amp;P2 39％61％占空比@20PPS
&lt;br&gt;AT&amp;P3 33％67％占空比@20PPS&lt;/blockquote&gt;
&lt;/dir&gt;
&lt;/dir&gt;
&lt;blockquote&gt;&lt;b&gt;&lt;/b&gt;?
&lt;br&gt;&lt;b&gt;AT&amp;Qn*??? 通讯方式????????????
缺省:5&lt;/b&gt;&lt;/blockquote&gt;
&lt;dir&gt;
&lt;dir&gt;
&lt;blockquote&gt;AT&amp;Q0 选择直接异步操作
&lt;br&gt;AT&amp;Q1 选择同步模式一操作
&lt;br&gt;AT&amp;Q2 选择同步模式二操作
&lt;br&gt;AT&amp;Q3 选择同步模式三操作
&lt;br&gt;AT&amp;Q4 选择自动同步模式操作
&lt;br&gt;AT&amp;Q5 选择纠错模式操作
&lt;br&gt;AT&amp;Q6 选择标准模式下的异步操作&lt;/blockquote&gt;
&lt;/dir&gt;
&lt;/dir&gt;
&lt;blockquote&gt;&lt;b&gt;&lt;/b&gt;?
&lt;br&gt;&lt;b&gt;AT&amp;Rn*??? RS232-C RTS/CTS?? 设置缺省:0&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;AT&amp;R0 CTS跟踪RTS, 本地DTE发送的RTS由OFF变为ON经过由寄存器S26所规定的以10微秒为增量的延迟后,CTS变为ON
&lt;p&gt;AT&amp;R1 调制解调器忽视RTS,除非使用了AT&amp;K3命令,CTS保持为ON&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;b&gt;&lt;/b&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;AT&amp;Sn*??? RS232-C DSR??????
设置缺省:0&lt;/b&gt;&lt;/blockquote&gt;
&lt;dir&gt;
&lt;dir&gt;
&lt;blockquote&gt;AT&amp;S0 DSR始终为ON
&lt;br&gt;AT&amp;S1 DSR根据EIA-232-C的规定操作&lt;/blockquote&gt;
&lt;/dir&gt;
&lt;/dir&gt;
&lt;blockquote&gt;&lt;b&gt;&lt;/b&gt;?
&lt;br&gt;&lt;b&gt;AT&amp;Tn*??? 测试和诊断???????????
缺省:4&lt;/b&gt;&lt;/blockquote&gt;
&lt;dir&gt;
&lt;dir&gt;
&lt;blockquote&gt;测试只能在非纠错方式下(标准或直接模式)下的异步操作中进行，除参数7和8以外，要中止正在进行中的测试必须首先敲入退出符。若S18非零，则测试经由S18规定的时间后自动中止并显示OK。
&lt;p&gt;AT&amp;T0 终止进行中的测试
&lt;br&gt;AT&amp;T1 启动本地模拟回环
&lt;br&gt;AT&amp;T3 在本地启动远端数字回环&amp;#183;,若连接未建通,返回ERROR
&lt;br&gt;AT&amp;T4 允许调制解调器响应来自远端的进行远程数字环回测试的请求
&lt;br&gt;AT&amp;T5 拒绝调制解调器响应来自远端的进行远程数字环回测试的求
&lt;br&gt;AT&amp;T6 启动远端数字环回测试,若连接未通,返回ERROR
&lt;br&gt;T&amp;T7 启动远端数字环回自测试,若连接未建通,返回ERROR
&lt;br&gt;AT&amp;T8 启动本地模拟环回自测试
&lt;br&gt;?&lt;/blockquote&gt;
&lt;/dir&gt;
&lt;/dir&gt;
&lt;blockquote&gt;&lt;b&gt;AT&amp;V???? 看当今配置及用户参数&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;AT&amp;V0 查看当前配置、用户方案和存储的电话号码
&lt;br&gt;AT&amp;V1 显示最后一次数据连接的详细情况&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;b&gt;&lt;/b&gt;?
&lt;br&gt;&lt;b&gt;AT&amp;Wn??? 储存用户参数?????????????
缺省：0&lt;/b&gt;&lt;/blockquote&gt;
&lt;dir&gt;
&lt;dir&gt;
&lt;blockquote&gt;AT&amp;W0 作为用户0存贮
&lt;br&gt;AT&amp;W1 作为用户1存贮&lt;/blockquote&gt;
&lt;/dir&gt;
&lt;/dir&gt;
&lt;blockquote&gt;&lt;b&gt;&lt;/b&gt;?
&lt;br&gt;&lt;b&gt;AT&amp;Xn*&lt;/b&gt;???&lt;b&gt; 选择同步时钟源????????????
缺省：0&lt;/b&gt;&lt;/blockquote&gt;
&lt;dir&gt;
&lt;dir&gt;
&lt;blockquote&gt;AT&amp;X0 调制解调器提供传输时钟，内部时钟。 AT&amp;X1 DTE提供传输时钟，外部时钟。
&lt;br&gt;AT&amp;X2 由调制解调器从接外载波信号中提供传输时钟，从属接收时钟&lt;/blockquote&gt;
&lt;/dir&gt;
&lt;/dir&gt;
&lt;blockquote&gt;?
&lt;br&gt;&lt;b&gt;AT&amp;Yn*??? 指示缺省用户参数???????????
缺省：0&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;在硬复位后可选择将使用的用户方案。
&lt;br&gt;AT&amp;Y0 选择用户方案0
&lt;br&gt;AT&amp;Y1 选择用户方案1&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;b&gt;&lt;/b&gt;?
&lt;br&gt;&lt;b&gt;AT&amp;Zn=x?? 储存电话号码(n=0-3)????????
缺省：0&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;将一36位数字电话号码(x)存放在一指定电话号码表中(n), 作以后拨号用(参见命令ATDS=n)&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;dir&gt;
&lt;dir&gt;
&lt;blockquote&gt;AT\An 最大MNP块的大小缺省:2
&lt;br&gt;AT\A0 设最大块为64个字符
&lt;br&gt;AT\A1 设最大块为128个字符
&lt;br&gt;AT\A2 设最大块为192个字符
&lt;br&gt;AT\A3 设最大块为256个字符&lt;/blockquote&gt;
&lt;/dir&gt;
&lt;/dir&gt;
&lt;blockquote&gt;&lt;b&gt;&lt;/b&gt;?
&lt;br&gt;&lt;b&gt;AT\Bn???? 发送中断信号(n=1-9)???????
缺省:3&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;当在非MNP连接期间输入此命令,调制解调器向远端调制解器发送一中断信号,中断信号长度参数为n值的100倍（以毫秒???????????
为单位）,在MNP模式下,输入此命令,调制解调器向远端调制解调器发送一链路注意码PDU&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;b&gt;&lt;/b&gt;?
&lt;br&gt;&lt;b&gt;AT\Gn???? 调制解调器到调制解调器的流控制???
缺省:0&lt;/b&gt;&lt;/blockquote&gt;
&lt;dir&gt;
&lt;dir&gt;
&lt;blockquote&gt;AT\G0 关闭流控(XON/XOFF)
&lt;br&gt;AT\G1 打开流控(XON/XOFF)
&lt;br&gt;?&lt;/blockquote&gt;
&lt;/dir&gt;
&lt;/dir&gt;
&lt;blockquote&gt;&lt;b&gt;AT\Jn???? DTE速率自动调整控制???????????
缺省:0&lt;/b&gt;&lt;/blockquote&gt;
&lt;dir&gt;
&lt;dir&gt;
&lt;blockquote&gt;AT\J0 关闭匹配线路速率的DTE速率调整功能
&lt;br&gt;AT\J1 打开匹配线路速率的DTE速率调整功能
&lt;br&gt;?&lt;/blockquote&gt;
&lt;/dir&gt;
&lt;/dir&gt;
&lt;blockquote&gt;&lt;b&gt;AT\Kn???? 中断控制????????????????????
缺省:5&lt;/b&gt;&lt;/blockquote&gt;
&lt;dir&gt;
&lt;dir&gt;
&lt;blockquote&gt;在数据传输期间收到来自DTE的中断信号时,调制解调器作出如下响应
&lt;p&gt;AT\K0,2,4 调制解调器进入连机命令状态,而不向远端发送中断信号
&lt;br&gt;AT\K1 调制解调器清空终端的缓冲器并向远端调制解调器发送中断信号
&lt;br&gt;AT\K3 调制解调器不清空终端的缓冲器,但向远端调制解调器发送中断信号
&lt;br&gt;AT\K5 调制解调器随发送的数据发送中断信号. 调制解调器在连机命令状态时数据传输过程中，做如下操作
&lt;br&gt;AT\K0,1 调制解调器清空终端的缓冲器，并向远端调制解调器发送中断信号
&lt;br&gt;AT\K2,3 调制解调器不清空缓冲器，但向远端调制解调器发送中断信号
&lt;br&gt;AT\K4,5 调制解调器随传输的数据按顺序发送中断信号 在非纠错模式下收到来自DTE的中断信号时,调制解调器做如下操作
&lt;br&gt;AT\K0,1 调制解调器清除终端的缓冲器,并向本地DTE发送中断信号
&lt;br&gt;AT\K2,3 调制解调器不清除缓冲器,但向本地DTE发送中断信号
&lt;br&gt;AT\K4,5 调制解调器随接收的数据按顺序发送中断信号
&lt;br&gt;?
&lt;br&gt;?&lt;/blockquote&gt;
&lt;/dir&gt;
&lt;/dir&gt;
&lt;blockquote&gt;&lt;b&gt;AT\Ln???? MNP块传输控制????????????????
缺省:0&lt;/b&gt;&lt;/blockquote&gt;
&lt;dir&gt;
&lt;dir&gt;
&lt;blockquote&gt;AT\L0 对于MNP链路连接使用流模式
&lt;br&gt;AT\L1 对于MNP链路连接使用块模式
&lt;br&gt;?&lt;/blockquote&gt;
&lt;/dir&gt;
&lt;/dir&gt;
&lt;blockquote&gt;&lt;b&gt;AT\Nn???? 操作模式控制????????????????
缺省:3&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;AT\N0 选择标准速度缓存模式(无纠错)
&lt;br&gt;AT\N1 选择直接模式(等效于&amp;M0,&amp;Q0)
&lt;br&gt;AT\N2 选择可靠模式,可靠连接失败会使调制解调器挂机
&lt;br&gt;AT\N3 选择自动可靠模式
&lt;br&gt;AT\N4 选择LAPM纠错模式,LAPM纠错连接失败会使调制解调器挂机
&lt;br&gt;AT\N5 选择MNP纠错模式,MNP纠错连接失败会使调制解调器挂机&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;b&gt;&lt;/b&gt;?
&lt;br&gt;&lt;b&gt;AT\Vn???? 单线连接信息????????????????
缺省：0&lt;/b&gt;&lt;/blockquote&gt;
&lt;dir&gt;
&lt;dir&gt;
&lt;blockquote&gt;AT\V0 关闭单线连接信息。
&lt;br&gt;AT\V1 打开单线连接信息。&lt;/blockquote&gt;
&lt;/dir&gt;
&lt;/dir&gt;
&lt;blockquote&gt;?
&lt;br&gt;&lt;b&gt;AT％C*??? 压缩控制???????????????????
缺省: 3&lt;/b&gt;&lt;/blockquote&gt;
&lt;dir&gt;
&lt;dir&gt;
&lt;blockquote&gt;AT%C0 关闭数据压缩 AT%C1 打开MNP5数据压缩
&lt;br&gt;AT%C2 打开V.42bis数据压缩
&lt;br&gt;AT%C3 打开MNP5和V.42bis数据压缩&lt;/blockquote&gt;
&lt;/dir&gt;
&lt;/dir&gt;
&lt;blockquote&gt;&lt;b&gt;&lt;/b&gt;?
&lt;br&gt;&lt;b&gt;AT％En??? 开/关自动均衡???????????????
缺省：2&lt;/b&gt;
&lt;br&gt;?
&lt;blockquote&gt;
&lt;blockquote&gt;控制是使调制解调器自动监听线路质量并请求均衡(％E1)还是当线路质量不好时降速，线路质量好时升速。&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;dir&gt;
&lt;dir&gt;
&lt;blockquote&gt;AT%E0 关闭线路质量监听和自动均衡。
&lt;br&gt;AT%E1 打开线路质量监听和自动均衡。
&lt;br&gt;AT%E2 打开线路质量监听和速率自动调整上升或下降。
&lt;br&gt;AT%E3 打开线路质量监听和采用快速挂机的自动均衡。&lt;/blockquote&gt;
&lt;/dir&gt;
&lt;/dir&gt;
&lt;blockquote&gt;&lt;b&gt;&lt;/b&gt;?
&lt;br&gt;&lt;b&gt;AT％L???? 报告接收灵敏度&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;返回接收信号的电平值,提供以下数值&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;dir&gt;
&lt;dir&gt;
&lt;blockquote&gt;001=-1dBm接收电平
&lt;br&gt;002=-2dBm接收电平
&lt;br&gt;: :
&lt;br&gt;043=-43dBm接收电平&lt;/blockquote&gt;
&lt;/dir&gt;
&lt;/dir&gt;
&lt;blockquote&gt;&lt;b&gt;&lt;/b&gt;?
&lt;br&gt;&lt;b&gt;AT%On???? 选择应答或呼叫模式????????????
缺省：1&lt;/b&gt;&lt;/blockquote&gt;
&lt;dir&gt;
&lt;dir&gt;
&lt;blockquote&gt;AT%O0 选择应答式模
&lt;br&gt;AT%O1 选择发起式模&lt;/blockquote&gt;
&lt;/dir&gt;
&lt;/dir&gt;
&lt;blockquote&gt;&lt;b&gt;&lt;/b&gt;?
&lt;br&gt;&lt;b&gt;AT%Rn???? 选择接收灵敏度 (&lt;/b&gt;适用於专线型号)&lt;b&gt;
缺省：0&lt;/b&gt;&lt;/blockquote&gt;
&lt;dir&gt;
&lt;dir&gt;
&lt;blockquote&gt;AT%R0 -43dBm
&lt;br&gt;AT%R1 -33dBm
&lt;br&gt;&lt;b&gt;备选：&lt;/b&gt;适用於拔号线型号,JP2跳线：-33dBM 连接1-2 针；-43 连接2-3针&lt;/blockquote&gt;
&lt;/dir&gt;
&lt;/dir&gt;
&lt;blockquote&gt;&lt;b&gt;&lt;/b&gt;?
&lt;br&gt;&lt;b&gt;AT％Q???? 显示线路信号质量&lt;/b&gt;&lt;/blockquote&gt;
&lt;dir&gt;
&lt;dir&gt;
&lt;blockquote&gt;返回眼图指标(EQM)值的高字节,该字节的表示范围为0到127,当这一数值为70DC&amp;#177;10(依赖于线路速率)或更大时,若已使用了AT％E1命令则调制解调器将自动均衡,标准连接时这一数在0到15之间。到60时则为较差连接。&lt;/blockquote&gt;
&lt;/dir&gt;
&lt;/dir&gt;
&lt;blockquote&gt;?
&lt;br&gt;&lt;b&gt;AT#CIDn?? 呼叫者身份鉴定????????????????
缺省：0&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;AT#CID=0关闭呼叫者身份鉴定
&lt;br&gt;AT#CID=1打开DTE格式化形式的呼叫者身份鉴定
&lt;br&gt;AT#CID=2打开DTE非格式化形式的呼叫者身份鉴定
&lt;br&gt;AT#CID? 从调制解调器中恢复当前呼叫者身份鉴定方式
&lt;br&gt;AT#CID=? 返回调制解调器允许模式的列表,表中各部分间用逗号隔开&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;b&gt;&lt;/b&gt;
&lt;p&gt;&lt;br&gt;&lt;b&gt;AT-SDR=n? 鉴别性振铃???????????????????
缺省：0&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;AT-SDR=0 允许任何振铃、并报告"RING"
&lt;br&gt;AT-SDR=1 允许一类型振铃
&lt;br&gt;AT-SDR=2 允许二类型振铃
&lt;br&gt;AT-SDR=3 允许一及二类型振铃
&lt;br&gt;AT-SDR=4 允许三类型振铃
&lt;br&gt;AT-SDR=5 允许一及三类型振铃
&lt;br&gt;AT-SDR=6 允许二及三类型振铃
&lt;br&gt;AT-SDR=7 允许一、二及三类型振铃&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;table BORDER CELLPADDING=9 WIDTH="556" &gt;
&lt;tr&gt;
&lt;td VALIGN=TOP WIDTH="22%"&gt;
&lt;center&gt;振铃类型?&lt;/center&gt;
&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="78%"&gt;
&lt;center&gt;振铃时段模式?&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td VALIGN=TOP WIDTH="22%"&gt;
&lt;center&gt;1?&lt;/center&gt;
&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="78%"&gt;响2秒、停4秒&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td VALIGN=TOP WIDTH="22%" HEIGHT="21"&gt;
&lt;center&gt;2?&lt;/center&gt;
&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="78%" HEIGHT="21"&gt;响0.8秒、停0.4秒、响0.8秒、停4秒&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td VALIGN=TOP WIDTH="22%" HEIGHT="20"&gt;
&lt;center&gt;3?&lt;/center&gt;
&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="78%" HEIGHT="20"&gt;响0.4秒、停0.2秒、响0.4秒、停0.2秒、响0.8秒、停4秒&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;blockquote&gt;&lt;b&gt;AT+MS*???? 选择线路调制方式&lt;/b&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;命令格式为（336型号）:
&lt;br&gt;AT+MS=&lt;模式&gt;,&lt;自动模式&gt;,&lt;最小速率&gt;,&lt;最大速率&gt;
&lt;br&gt;缺省值为 AT+MS=11,1,300,33600 （336型号）
&lt;p&gt;命令格式为（560型号）:
&lt;br&gt;AT+MS=&lt;模式&gt;,&lt;自动模式&gt;,&lt;最小速率&gt;,&lt;最大速率&gt;,
&lt;br&gt;&lt;x_law&gt;,&lt;rb_signal&gt;,&lt;maxup_rate&gt;
&lt;br&gt;缺省值为 AT+MS=12,1,300,56000,33600 （560型号）
&lt;p&gt;&lt;b&gt;AT+MS?? &lt;/b&gt;向包含所选选项的DTE发送一信息流
&lt;p&gt;&lt;b&gt;AT+MS=?&lt;/b&gt; 向包含所提供选项的DTE发送一信息流
&lt;br&gt;?
&lt;br&gt;?&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;table BORDER CELLPADDING=9 WIDTH="752" &gt;
&lt;tr&gt;
&lt;td VALIGN=TOP WIDTH="22%"&gt;
&lt;center&gt;自动模式?&lt;/center&gt;
&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="78%"&gt;
&lt;center&gt;选 项?&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td VALIGN=TOP WIDTH="22%"&gt;
&lt;center&gt;0?&lt;/center&gt;
&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="78%"&gt;
&lt;center&gt;关闭自动模式?&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td VALIGN=TOP WIDTH="22%" HEIGHT="21"&gt;
&lt;center&gt;1?&lt;/center&gt;
&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="78%" HEIGHT="21"&gt;
&lt;center&gt;打开自动模式?&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;?&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;table BORDER CELLPADDING=9 WIDTH="893" &gt;
&lt;tr&gt;
&lt;td VALIGN=TOP WIDTH="7%" HEIGHT="42"&gt;
&lt;center&gt;模式?&lt;/center&gt;
&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="16%" HEIGHT="42"&gt;? 调制方式选择&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="77%" HEIGHT="42"&gt;
&lt;center&gt;可能 波特率(bps) &lt;最小 波特率&gt; &lt;最大 波特率&gt;?&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td VALIGN=TOP WIDTH="7%"&gt;
&lt;center&gt;0?&lt;/center&gt;
&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="16%"&gt;V.21&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="77%"&gt;300&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td VALIGN=TOP WIDTH="7%"&gt;
&lt;center&gt;1?&lt;/center&gt;
&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="16%"&gt;V.22&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="77%"&gt;1200&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td VALIGN=TOP WIDTH="7%"&gt;
&lt;center&gt;2?&lt;/center&gt;
&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="16%"&gt;V.22bis&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="77%"&gt;2400或1200&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td VALIGN=TOP WIDTH="7%"&gt;
&lt;center&gt;3?&lt;/center&gt;
&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="16%"&gt;V.23&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="77%"&gt;1200&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td VALIGN=TOP WIDTH="7%"&gt;
&lt;center&gt;9?&lt;/center&gt;
&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="16%"&gt;V.32&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="77%"&gt;9600或4800&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td VALIGN=TOP WIDTH="7%"&gt;
&lt;center&gt;10?&lt;/center&gt;
&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="16%"&gt;V.32bis&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="77%"&gt;14400,12000,9600,7200 或4800&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td VALIGN=TOP WIDTH="7%"&gt;
&lt;center&gt;11?&lt;/center&gt;
&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="16%"&gt;
&lt;br&gt;V.34&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="77%"&gt;33600,31200,28800,26400,24000,21600,19200, 16800,14400,12000,?
&lt;br&gt;9600,7200,4800或2400&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td VALIGN=TOP WIDTH="7%" HEIGHT="83"&gt;
&lt;center&gt;12?&lt;/center&gt;
&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="16%" HEIGHT="83"&gt;
&lt;br&gt;V.90&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="77%" HEIGHT="83"&gt;56000,54667,53333,52000,50667,49333,48000,46667,45333,42667,?
&lt;br&gt;41333,40000,38667,37333,36000,34667,33333,32000,30667,29333,?
&lt;br&gt;28000 (560型号适用)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td VALIGN=TOP WIDTH="7%"&gt;
&lt;center&gt;56?&lt;/center&gt;
&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="16%"&gt;
&lt;br&gt;K56flex&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="77%"&gt;56000,54000,52000,50000,48000,46000,44000,42000,40000,38000,?
&lt;br&gt;36000,34000,32000 (560型号适用)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td VALIGN=TOP WIDTH="7%"&gt;
&lt;center&gt;64?&lt;/center&gt;
&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="16%"&gt;Bell 103&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="77%"&gt;300&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td VALIGN=TOP WIDTH="7%"&gt;
&lt;center&gt;69?&lt;/center&gt;
&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="16%"&gt;Bell 212&lt;/td&gt;
&lt;td VALIGN=TOP WIDTH="77%"&gt;1200&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;&lt;x_law&gt; 是一个可选的数字，用来确定码类型，选择是：
&lt;blockquote&gt;0 = u-Law 1 = A-Law
&lt;p&gt;注意：ATZ命令将复位&lt;x_law&gt;值为0 (u-Law)。
&lt;br&gt;?
&lt;p&gt;&lt;rb_signaling&gt; 是一个可选的数字，用于配置一个发送数据的调制解调器产生&amp;#8220;丢失位&amp;#8221;信号或不产生&amp;#8220;丢??????????????
失位&amp;#8221;信号；或配置一台接收数据的调制解调器检测&amp;#8220;丢失位&amp;#8221;信号或不检测&amp;#8220;丢失位&amp;#8221;信??????????????
号。选择是：&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;dir&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;0 = 发送数据的调制解调器产生丢失位信号。接收数据的调制解调器检测丢失位信号。
&lt;p&gt;1= 发送数据的调制解调器不产生丢失位信号。接收数据的调制解调器不检测丢失位信号。
&lt;p&gt;注意：ATZ命令将复位&lt;rb_signaling&gt;值为0。
&lt;br&gt;?&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/dir&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;Maxup_rate : 连接速率的最大值。&lt;/blockquote&gt;
&lt;/blockquote&gt;&lt;img src ="http://blog.vckbase.com/wangjun/aggbug/868.html" width = "1" height = "1" /&gt;</description></item></channel></rss>