@@ -64,13 +64,13 @@ msgid ""
64
64
"blocking sockets. But I'll start by talking about blocking sockets. You'll "
65
65
"need to know how they work before dealing with non-blocking sockets."
66
66
msgstr ""
67
- "我只會討論關於 INET(例如:IPv4)的 sockets,但它們涵蓋了幾乎 99% 的 "
68
- "sockets 使用場景。而我也將僅討論關於 STREAM(比如:TCP)類型的 sockets - 除 "
69
- "非你真的知道你在做什麼 (在這種情況下,這份指南可能不適合你),使用 STREAM "
70
- "類型的 socket 會獲得比其他 sockets 類型更好的表現和性能。我將會嘗試解釋 "
71
- "socket 是什麼 ,以及如何使用阻塞 (blocking) 和非阻塞 (non-blocking) sockets 的 "
72
- "一些建議。 但首先我會先談論阻塞 sockets。在處理非阻塞 sockets 之前,你需要了解 "
73
- "它們的工作原理 。"
67
+ "我只會討論關於 INET(例如:IPv4)的 sockets,但它們涵蓋了幾乎 99% 的 sockets "
68
+ "使用場景。而我也將僅討論關於 STREAM(比如:TCP)類型的 sockets - 除非你真的知 "
69
+ "道你在做什麼 (在這種情況下,這份指南可能不適合你),使用 STREAM 類型的 "
70
+ "socket 會獲得比其他 sockets 類型更好的表現和性能。我將會嘗試解釋 socket 是什 "
71
+ "麼 ,以及如何使用阻塞 (blocking) 和非阻塞 (non-blocking) sockets 的一些建議。 "
72
+ "但首先我會先談論阻塞 sockets。在處理非阻塞 sockets 之前,你需要了解它們的工作 "
73
+ "原理 。"
74
74
75
75
#: ../../howto/sockets.rst:31
76
76
msgid ""
@@ -82,12 +82,12 @@ msgid ""
82
82
"sockets exclusively; the web server it's talking to uses both \" server\" "
83
83
"sockets and \" client\" sockets."
84
84
msgstr ""
85
- "要理解這些東西的困難點之一在於 \" scoket\" 可以代表多種具有些微差異的東西,這主要 "
86
- "取決於上下文 。所以首先,讓我們先區分「用戶端 (client)」socket 和「伺服器端 "
87
- " (server)」socket 的差別,「用戶端」socket 表示通訊的一端,「伺服器端」"
88
- "socket 更像是一個電話總機接線員。用戶端應用程式(例如:你的瀏覽器)只能使 "
89
- "用 「用戶端」socket; 它所連接的網路伺服器則同時使用「伺服器端」socket 和 "
90
- "「用戶端 」socket 來進行通訊。"
85
+ "要理解這些東西的困難點之一在於 \" scoket\" 可以代表多種具有些微差異的東西,這 "
86
+ "主要取決於上下文 。所以首先,讓我們先區分「用戶端 (client)」socket 和「伺服器 "
87
+ "端 (server)」socket 的差別,「用戶端」socket 表示通訊的一端,「伺服器端」"
88
+ "socket 更像是一個電話總機接線員。用戶端應用程式(例如:你的瀏覽器)只能使用 "
89
+ "「用戶端」socket; 它所連接的網路伺服器則同時使用「伺服器端」socket 和 「用戶 "
90
+ "端 」socket 來進行通訊。"
91
91
92
92
#: ../../howto/sockets.rst:40
93
93
msgid "History"
@@ -111,8 +111,8 @@ msgid ""
111
111
"of sockets with INET makes talking to arbitrary machines around the world "
112
112
"unbelievably easy (at least compared to other schemes)."
113
113
msgstr ""
114
- "Sockets 作為 Unix 的 BSD 分支的一部分在 Berkeley 被發明出來。它們隨著網際網路的普 "
115
- "及而迅速蔓延開來 。這是有很好的理由 — sockets 和 INET 的結合讓世界各地任何"
114
+ "Sockets 作為 Unix 的 BSD 分支的一部分在 Berkeley 被發明出來。它們隨著網際網路 "
115
+ "的普及而迅速蔓延開來 。這是有很好的理由 — sockets 和 INET 的結合讓世界各地任何"
116
116
"的機器之間的通訊變得非常簡單(至少與其它方案相比是如此)。"
117
117
118
118
#: ../../howto/sockets.rst:54
@@ -136,16 +136,16 @@ msgid ""
136
136
"used for one exchange (or a small set of sequential exchanges)."
137
137
msgstr ""
138
138
"當 ``connect`` 完成時,這個 socket ``s`` 可以用來發送請求來取得頁面的文本。同"
139
- "一個 socket 也會讀取回傳值,然後再被銷毀。是的,會被銷毀。用戶端 socket 通常只 "
140
- "用來做一次交換 (或是一小組連續交換)。"
139
+ "一個 socket 也會讀取回傳值,然後再被銷毀。是的,會被銷毀。用戶端 socket 通常 "
140
+ "只用來做一次交換 (或是一小組連續交換)。"
141
141
142
142
#: ../../howto/sockets.rst:70
143
143
msgid ""
144
144
"What happens in the web server is a bit more complex. First, the web server "
145
145
"creates a \" server socket\" ::"
146
146
msgstr ""
147
- "網路伺服器 (web server) 的運作就稍微複雜一點。首先,網路伺服器會建立一個「伺服器端 "
148
- "socket」:\n"
147
+ "網路伺服器 (web server) 的運作就稍微複雜一點。首先,網路伺服器會建立一個「伺 "
148
+ "服器端 socket」:\n"
149
149
"\n"
150
150
"::"
151
151
@@ -158,19 +158,19 @@ msgid ""
158
158
"machine. ``s.bind(('', 80))`` specifies that the socket is reachable by any "
159
159
"address the machine happens to have."
160
160
msgstr ""
161
- "有幾件事需要注意:我們使用了 ``socket.gethostname()``,這樣 socket 才能對外 "
162
- "部網路可見 。如果我們使用了 ``s.bind(('localhost', 80))`` 或 ``s."
163
- "bind(('127.0.0.1', 80))``,我們會得到一個「伺服器端」socket,但是只能在同一 "
164
- "台機器內可見 。``s.bind(('', 80))`` 指定 socket 可以透過機器的任何地址存取。"
161
+ "有幾件事需要注意:我們使用了 ``socket.gethostname()``,這樣 socket 才能對外部 "
162
+ "網路可見 。如果我們使用了 ``s.bind(('localhost', 80))`` 或 ``s."
163
+ "bind(('127.0.0.1', 80))``,我們會得到一個「伺服器端」socket,但是只能在同一台 "
164
+ "機器內可見 。``s.bind(('', 80))`` 指定 socket 可以透過機器的任何地址存取。"
165
165
166
166
#: ../../howto/sockets.rst:87
167
167
msgid ""
168
168
"A second thing to note: low number ports are usually reserved for \" well "
169
169
"known\" services (HTTP, SNMP etc). If you're playing around, use a nice high "
170
170
"number (4 digits)."
171
171
msgstr ""
172
- "第二個要注意的是:數字小的連接埠 (port) 通常保留給「廣為人知的」服務(HTTP、SNMP "
173
- "等 )。如果你只是想執行程式,可以使用一個數字較大的連接埠(4 位數字)。"
172
+ "第二個要注意的是:數字小的連接埠 (port) 通常保留給「廣為人知的」服務(HTTP、"
173
+ "SNMP等 )。如果你只是想執行程式,可以使用一個數字較大的連接埠(4 位數字)。"
174
174
175
175
#: ../../howto/sockets.rst:91
176
176
msgid ""
@@ -180,8 +180,8 @@ msgid ""
180
180
"should be plenty."
181
181
msgstr ""
182
182
"最後,``listen`` 引數告訴 socket 函式庫 (library),我們希望在佇列 (queue) 中"
183
- "累積達 5 個(正常的最大值)連接請求後再拒絕外部連接。如果其餘的程式碼編寫 "
184
- "正確 ,這應該足夠了。"
183
+ "累積達 5 個(正常的最大值)連接請求後再拒絕外部連接。如果其餘的程式碼編寫正 "
184
+ "確 ,這應該足夠了。"
185
185
186
186
#: ../../howto/sockets.rst:95
187
187
msgid ""
@@ -209,15 +209,15 @@ msgid ""
209
209
"allocated port which will be recycled when the conversation ends."
210
210
msgstr ""
211
211
"事實上,有三種方法可以讓這個迴圈運作 - 分配一個執行緒 (thread) 來處理 "
212
- "``clientsocket`` 、建立一個新行程 (process) 來處理 ``clientsocket``,或者將 "
213
- "這個程式重新改寫成使用非阻塞 socket,並使用 ``select`` 在我們的「伺服器端」"
212
+ "``clientsocket`` 、建立一個新行程 (process) 來處理 ``clientsocket``,或者將這 "
213
+ "個程式重新改寫成使用非阻塞 socket,並使用 ``select`` 在我們的「伺服器端」"
214
214
"socket 和任何有效的 ``clientsocket`` 之間進行多工處理。稍後將會更詳細的介紹。"
215
- "現在最重要的是理解:這就是「伺服器端」socket 做的\\ *所有* \\ 事情。它不會發送任何 "
216
- "資料 、也不接收任何資料,它只會建立「伺服器端」socket。每個 ``clientsocket`` "
217
- "都是為了回應某些\\ *其他* \\ ``connect()`` 到我們綁定的主機上的「用戶端」socket。 "
218
- "一但 ``clientsocket`` 建立完成,就會繼續監聽更多的連接請求。兩個「用戶端」可 "
219
- "以隨意的通訊 - 它們使用的是一些動態分配的連接埠,會在通訊結束的時候被回收並重新 "
220
- "利用 。"
215
+ "現在最重要的是理解:這就是「伺服器端」socket 做的\\ *所有* \\ 事情。它不會發送 "
216
+ "任何資料 、也不接收任何資料,它只會建立「伺服器端」socket。每個 "
217
+ "``clientsocket`` 都是為了回應某些\\ *其他* \\ ``connect()`` 到我們綁定的主機 "
218
+ "上的「用戶端」socket。 一但 ``clientsocket`` 建立完成,就會繼續監聽更多的連接 "
219
+ "請求。兩個「用戶端」可以隨意的通訊 - 它們使用的是一些動態分配的連接埠,會在通 "
220
+ "訊結束的時候被回收並重新利用 。"
221
221
222
222
#: ../../howto/sockets.rst:121
223
223
msgid "IPC"
@@ -378,10 +378,10 @@ msgstr ""
378
378
#: ../../howto/sockets.rst:262
379
379
msgid ""
380
380
"Socket libraries have calls for converting 16 and 32 bit integers - ``ntohl, "
381
- "htonl, ntohs, htons`` where \" n\" means *network* and \" h\" means *host*, \" s "
382
- "\" means *short* and \" l\" means *long*. Where network order is host order, "
383
- "these do nothing, but where the machine is byte-reversed, these swap the "
384
- "bytes around appropriately."
381
+ "htonl, ntohs, htons`` where \" n\" means *network* and \" h\" means *host*, "
382
+ "\" s \" means *short* and \" l\" means *long*. Where network order is host "
383
+ "order, these do nothing, but where the machine is byte-reversed, these swap "
384
+ "the bytes around appropriately."
385
385
msgstr ""
386
386
387
387
#: ../../howto/sockets.rst:268
0 commit comments