[boost-doc-zh] r296 committed - [No log message]

  • From: codesite-noreply@xxxxxxxxxx
  • To: boost-doc-zh-notify@xxxxxxxxxxxxx
  • Date: Tue, 25 Aug 2009 05:33:27 +0000

Revision: 296
Author: totti19851101
Date: Mon Aug 24 22:32:46 2009
Log: [No log message]
http://code.google.com/p/boost-doc-zh/source/detail?r=296

Modified:
 /trunk/doc/html/boost_asio/tutorial/tutdaytime3.html

=======================================
--- /trunk/doc/html/boost_asio/tutorial/tutdaytime3.html Wed May 27 03:09:50 2009 +++ /trunk/doc/html/boost_asio/tutorial/tutdaytime3.html Mon Aug 24 22:32:46 2009
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Daytime.3 - An asynchronous TCP daytime server</title>
 <link rel="stylesheet" href="../../boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.3">
@@ -24,13 +24,11 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_asio.tutorial.tutdaytime3"></a><a class="link" href="tutdaytime3.html" title="Daytime.3 - An asynchronous TCP daytime server"> Daytime.3 - An asynchronous
-      TCP daytime server</a>
+<a name="boost_asio.tutorial.tutdaytime3"></a><a class="link" href="tutdaytime3.html" title="Daytime.3 - An asynchronous TCP daytime server"> Daytime.3 - 异步TCP daytime服务器</a>
 </h3></div></div></div>
 <a name="boost_asio.tutorial.tutdaytime3.the_main___function"></a><h5>
 <a name="id1138585"></a>
- <a class="link" href="tutdaytime3.html#boost_asio.tutorial.tutdaytime3.the_main___function">The main()
-        function</a>
+ <a class="link" href="tutdaytime3.html#boost_asio.tutorial.tutdaytime3.the_main___function">主 函数</a>
       </h5>
<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
 <span class="special">{</span>
@@ -38,16 +36,14 @@
   <span class="special">{</span>
 </pre>
 <p>
- We need to create a server object to accept incoming client connections. - The <a class="link" href="../reference/io_service.html" title="io_service">io_service</a> object - provides I/O services, such as sockets, that the server object will use. + 我们需要创建一个服务器对象,用来接受客户端的连接。<a class="link" href="../reference/io_service.html" title="io_service">io_service</a>对象提 供了像sockets这样的I/O服务,这些服务都是服务器对象将要使用的。
       </p>
<pre class="programlisting"> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_service</span> <span class="identifier">io_service</span><span class="special">;</span> <span class="identifier">tcp_server</span> <span class="identifier">server</span><span class="special">(</span><span class="identifier">io_service</span><span class="special">);</span>
 </pre>
 <p>
- Run the <a class="link" href="../reference/io_service.html" title="io_service">io_service</a> - object so that it will perform asynchronous operations on your behalf. + 运行<a class="link" href="../reference/io_service.html" title="io_service">io_service</a>
+        对象,它将执行你想要的异步操作。
       </p>
<pre class="programlisting"> <span class="identifier">io_service</span><span class="special">.</span><span class="identifier">run</span><span class="special">();</span>
   <span class="special">}</span>
@@ -61,15 +57,14 @@
 </pre>
 <a name="boost_asio.tutorial.tutdaytime3.the_tcp_server_class"></a><h5>
 <a name="id1138896"></a>
- <a class="link" href="tutdaytime3.html#boost_asio.tutorial.tutdaytime3.the_tcp_server_class">The
-        tcp_server class</a>
+ <a class="link" href="tutdaytime3.html#boost_asio.tutorial.tutdaytime3.the_tcp_server_class">TCP服 务器类</a>
       </h5>
<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">tcp_server</span>
 <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
 </pre>
 <p>
-        The constructor initialises an acceptor to listen on TCP port 13.
+        构造函数初始化一个用于监听TCP 端口13的接收器。
       </p>
<pre class="programlisting"> <span class="identifier">tcp_server</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">io_service</span><span class="special">&amp;</span> <span class="identifier">io_service</span><span class="special">)</span> <span class="special">:</span> <span class="identifier">acceptor_</span><span class="special">(</span><span class="identifier">io_service</span><span class="special">,</span> <span class="identifier">tcp</span><span class="special">::</span><span class="identifier">endpoint</span><span class="special">(</span><span class="identifier">tcp</span><span class="special">::</span><span class="identifier">v4</span><span class="special">(),</span> <span class="number">13</span><span class="special">))</span>
@@ -80,8 +75,7 @@
 <span class="keyword">private</span><span class="special">:</span>
 </pre>
 <p>
- The function <code class="computeroutput"><span class="identifier">start_accept</span><span class="special">()</span></code> creates a socket and initiates an asynchronous
-        accept operation to wait for a new connection.
+ 函数<code class="computeroutput"><span class="identifier">start_accept</span><span class="special">()</span></code>创建一个socket ,同时启动一个异步接收操作去 等待一个新的连接。
       </p>
<pre class="programlisting"> <span class="keyword">void</span> <span class="identifier">start_accept</span><span class="special">()</span>
   <span class="special">{</span>
@@ -94,9 +88,9 @@
   <span class="special">}</span>
 </pre>
 <p>
- The function <code class="computeroutput"><span class="identifier">handle_accept</span><span class="special">()</span></code> is called when the asynchronous accept - operation initiated by <code class="computeroutput"><span class="identifier">start_accept</span><span class="special">()</span></code> finishes. It services the client request, - and then calls <code class="computeroutput"><span class="identifier">start_accept</span><span class="special">()</span></code> to initiate the next accept operation. + 当<code class="computeroutput"><span class="identifier">start_accept</span><span class="special">()</span></code> + 启动的异步接收操作完成后,<code class="computeroutput"><span class="identifier">handle_accept</span><span class="special">()</span></code>函数将被调用。它响应客户端的请求,然后调用 <code class="computeroutput"><span class="identifier">start_accept</span><span class="special">()</span></code>
+        函数去启动另一个接收操作。
       </p>
<pre class="programlisting"> <span class="keyword">void</span> <span class="identifier">handle_accept</span><span class="special">(</span><span class="identifier">tcp_connection</span><span class="special">::</span><span class="identifier">pointer</span> <span class="identifier">new_connection</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span><span class="special">&amp;</span> <span class="identifier">error</span><span class="special">)</span>
@@ -110,14 +104,12 @@
 </pre>
 <a name="boost_asio.tutorial.tutdaytime3.the_tcp_connection_class"></a><h5>
 <a name="id1139561"></a>
- <a class="link" href="tutdaytime3.html#boost_asio.tutorial.tutdaytime3.the_tcp_connection_class">The
-        tcp_connection class</a>
+ <a class="link" href="tutdaytime3.html#boost_asio.tutorial.tutdaytime3.the_tcp_connection_class">TCP连 接类</a>
       </h5>
 <p>
- We will use <code class="computeroutput"><span class="identifier">shared_ptr</span></code> and - <code class="computeroutput"><span class="identifier">enable_shared_from_this</span></code> because - we want to keep the <code class="computeroutput"><span class="identifier">tcp_connection</span></code>
-        object alive as long as there is an operation that refers to it.
+ 我们希望只要还有一个操作涉及<code class="computeroutput"><span class="identifier">tcp_connection</span></code>对象, + 该对象就是有效的。因此我们使用<code class="computeroutput"><span class="identifier">shared_ptr</span></code>和 + <code class="computeroutput"><span class="identifier">enable_shared_from_this</span></code>。
       </p>
<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">tcp_connection</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_shared_from_this</span><span class="special">&lt;</span><span class="identifier">tcp_connection</span><span class="special">&gt;</span>
@@ -136,35 +128,28 @@
   <span class="special">}</span>
 </pre>
 <p>
- In the function <code class="computeroutput"><span class="identifier">start</span><span class="special">()</span></code>, - we call boost::asio::async_write() to serve the data to the client. Note - that we are using boost::asio::async_write(), rather than <a class="link" href="../reference/basic_stream_socket/async_write_some.html" title="basic_stream_socket::async_write_some">ip::tcp::socket::async_write_some()</a>,
-        to ensure that the entire block of data is sent.
+ 在<code class="computeroutput"><span class="identifier">start</span><span class="special">()</span></code>, + 函数中,我们调用boost::asio::async_write() 为客户端处理数据。注 意:为了确保数据被整块发送,我们使用的是boost::asio::async_write(),而不是 <a class="link" href="../reference/basic_stream_socket/async_write_some.html" title="basic_stream_socket::async_write_some">ip::tcp::socket::async_write_some()</a>。
       </p>
<pre class="programlisting"> <span class="keyword">void</span> <span class="identifier">start</span><span class="special">()</span>
   <span class="special">{</span>
 </pre>
 <p>
- The data to be sent is stored in the class member <code class="computeroutput"><span class="identifier">message_</span></code> - as we need to keep the data valid until the asynchronous operation is complete. + 要发送的数据保存在类成员变量<code class="computeroutput"><span class="identifier">message_</span></code>
+        中,在异步操作完成前我们需要保证数据的有效性。
       </p>
<pre class="programlisting"> <span class="identifier">message_</span> <span class="special">=</span> <span class="identifier">make_daytime_string</span><span class="special">();</span>
 </pre>
 <p>
- When initiating the asynchronous operation, and if using boost::bind(), you - must specify only the arguments that match the handler's parameter list. - In this program, both of the argument placeholders (boost::asio::placeholders::error - and boost::asio::placeholders::bytes_transferred) could potentially have - been removed, since they are not being used in <code class="computeroutput"><span class="identifier">handle_write</span><span class="special">()</span></code>.
-      </p>
+ 当启动一个异步操作时,如果使用boost::bind(),你只需要指定一个符合句 柄参数列表签名的参数。在本例中,任何一个参数占位符 (boost::asio::placeholders::error 和 boost::asio::placeholders::bytes_transferred)皆可被隐式地移除,因为操作 <code class="computeroutput"><span class="identifier">handle_write</span><span class="special">()</span></code>并没有使用它们。
+  </p>
<pre class="programlisting"> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">async_write</span><span class="special">(</span><span class="identifier">socket_</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">buffer</span><span class="special">(</span><span class="identifier">message_</span><span class="special">),</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">bind</span><span class="special">(&amp;</span><span class="identifier">tcp_connection</span><span class="special">::</span><span class="identifier">handle_write</span><span class="special">,</span> <span class="identifier">shared_from_this</span><span class="special">(),</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">placeholders</span><span class="special">::</span><span class="identifier">error</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">placeholders</span><span class="special">::</span><span class="identifier">bytes_transferred</span><span class="special">));</span>
 </pre>
 <p>
- Any further actions for this client connection are now the responsibility - of <code class="computeroutput"><span class="identifier">handle_write</span><span class="special">()</span></code>. + 任何对客户端连接的下一步操作都由<code class="computeroutput"><span class="identifier">handle_write</span><span class="special">()</span></code>函数负责处理。
       </p>
 <pre class="programlisting">  <span class="special">}</span>

@@ -185,39 +170,33 @@
 </pre>
<a name="boost_asio.tutorial.tutdaytime3.removing_unused_handler_parameters"></a><h5>
 <a name="id1140483"></a>
- <a class="link" href="tutdaytime3.html#boost_asio.tutorial.tutdaytime3.removing_unused_handler_parameters">Removing
-        unused handler parameters</a>
+ <a class="link" href="tutdaytime3.html#boost_asio.tutorial.tutdaytime3.removing_unused_handler_parameters">移 除无用的操作参数</a>
       </h5>
 <p>
- You may have noticed that the <code class="computeroutput"><span class="identifier">error</span></code>, - and <code class="computeroutput"><span class="identifier">bytes_transferred</span></code> parameters - are not used in the body of the <code class="computeroutput"><span class="identifier">handle_write</span><span class="special">()</span></code> function. If parameters are not needed, - it is possible to remove them from the function so that it looks like: + 你可能已经注意到了:<code class="computeroutput"><span class="identifier">error</span></code> + 和<code class="computeroutput"><span class="identifier">bytes_transferred</span></code>参数并没有在<code class="computeroutput"><span class="identifier">handle_write</span><span class="special">()</span></code>函数体内被应用。因此,如果参数并不是必须 的,我们可以移除它们,如下所示:
       </p>
<pre class="programlisting"> <span class="keyword">void</span> <span class="identifier">handle_write</span><span class="special">()</span>
   <span class="special">{</span>
   <span class="special">}</span>
 </pre>
 <p>
- The boost::asio::async_write() call used to initiate the call can then be
-        changed to just:
+ 用来发起呼叫的boost::asio::async_write()函数通常可以被改写成下面这 样:
       </p>
<pre class="programlisting"> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">async_write</span><span class="special">(</span><span class="identifier">socket_</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">buffer</span><span class="special">(</span><span class="identifier">message_</span><span class="special">),</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">bind</span><span class="special">(&amp;</span><span class="identifier">tcp_connection</span><span class="special">::</span><span class="identifier">handle_write</span><span class="special">,</span> <span class="identifier">shared_from_this</span><span class="special">()));</span>
 </pre>
 <p>
- See the <a class="link" href="tutdaytime3/src.html" title="Source listing for Daytime.3">full source listing</a> + 查看<a class="link" href="tutdaytime3/src.html" title="Source listing for Daytime.3">本例全部源代码</a>
       </p>
 <p>
- Return to the <a class="link" href="../tutorial.html" title="Tutorial">tutorial index</a> + 返回<a class="link" href="../tutorial.html" title="Tutorial">指南 </a>
       </p>
 <p>
- Previous: <a class="link" href="tutdaytime2.html" title="Daytime.2 - A synchronous TCP daytime server">Daytime.2 - A synchronous
-        TCP daytime server</a>
+ 前一例: <a class="link" href="tutdaytime2.html" title="Daytime.2 - A synchronous TCP daytime server">Daytime.2 - 同步TCP daytime服务器</a>
       </p>
 <p>
- Next: <a class="link" href="tutdaytime4.html" title="Daytime.4 - A synchronous UDP daytime client">Daytime.4 - A synchronous
-        UDP daytime client</a>
+ 后一例: <a class="link" href="tutdaytime4.html" title="Daytime.4 - A synchronous UDP daytime client">Daytime.4 - 同步UDP daytime客户端</a>
       </p>
 </div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tr>

Other related posts:

  • » [boost-doc-zh] r296 committed - [No log message] - codesite-noreply