@@ -46,7 +46,7 @@ msgid ""
46
46
msgstr ""
47
47
"Sockets 在各處都被廣泛使用,但卻是一項被誤解最嚴重的技術之一。這是一篇對 "
48
48
"sockets 的簡單介紹。這並不是一個完整的教學指南 - 你還需要做許多準備才能讓 "
49
- "sockets 正常運作。這篇文章也沒有包含細節 (其中有非常多的細節),但我希望這篇"
49
+ "sockets 正常運作。這篇文章也沒有包含細節(其中有非常多的細節),但我希望這篇"
50
50
"文章能夠讓你有足夠的背景知識,以便開始正確的使用 sockets 程式設計。"
51
51
52
52
#: ../../howto/sockets.rst:20
@@ -64,9 +64,9 @@ 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 "
67
+ "我只會討論關於 INET(例如:IPv4)的 sockets,但它們涵蓋了幾乎 99% 的 "
68
+ "sockets 使用場景。而我也將僅討論關於 STREAM(比如:TCP)類型的 sockets - 除"
69
+ "非你真的知道你在做什麼(在這種情況下,這份指南可能不適合你),使用 STREAM "
70
70
"類型的 socket 會獲得比其他 sockets 類型更好的表現和性能。我將會嘗試解釋 "
71
71
"socket 是什麼,以及如何使用阻塞 (blocking) 和非阻塞 (non-blocking) sockets 的"
72
72
"一些建議。但首先我會先談論阻塞 sockets。在處理非阻塞 sockets 之前,你需要了解"
@@ -85,7 +85,7 @@ msgstr ""
85
85
"要理解這些東西的困難點之一在於 \" scoket\" 可以表示很多些微差異的東西,這主要"
86
86
"取決於上下文。所以首先,讓我們先區分 \" 客戶端\" (client) socket 和 \" 服務端"
87
87
"\" (server) socket 的差別,\" 客戶端\" socket 表示通信的一端,\" 服務端\" "
88
- "socket 更像是一個電話總機接線員。客戶端應用程式 (例如:你的瀏覽器) 只能使"
88
+ "socket 更像是一個電話總機接線員。客戶端應用程式(例如:你的瀏覽器)只能使"
89
89
"用 \" 客戶端\" socket; 它所連接的網路服務器則同時使用 \" 服務端\" socket 和 "
90
90
"\" 客戶端\" socket 來進行通信。"
91
91
@@ -100,9 +100,9 @@ msgid ""
100
100
"other forms of IPC that are faster, but for cross-platform communication, "
101
101
"sockets are about the only game in town."
102
102
msgstr ""
103
- "在各種形式的 :abbr:`IPC (Inter Process Communication)` 中, sockets 是最受歡迎"
103
+ "在各種形式的 :abbr:`IPC (Inter Process Communication)` 中,sockets 是最受歡迎"
104
104
"的。在任何特定的平台上,可能會存在其他更快速的 IPC 形式,但對於跨平台通訊來"
105
- "說, sockets 是唯一的選擇。"
105
+ "說,sockets 是唯一的選擇。"
106
106
107
107
#: ../../howto/sockets.rst:47
108
108
msgid ""
@@ -113,7 +113,7 @@ msgid ""
113
113
msgstr ""
114
114
"Sockets 作為 Unix 的 BSD 分支的一部分在 Berkeley 被發明出來。隨著網際網路的普"
115
115
"及,它們迅速蔓延開來。這是有很好的理由 — sockets 和 INET 的結合讓世界各地任何"
116
- "的機器之間的通訊變得非常簡單 (至少與其它方案相比是如此)。"
116
+ "的機器之間的通訊變得非常簡單(至少與其它方案相比是如此)。"
117
117
118
118
#: ../../howto/sockets.rst:54
119
119
msgid "Creating a Socket"
@@ -137,7 +137,7 @@ msgid ""
137
137
msgstr ""
138
138
"當 ``connect`` 完成時,這個 socket ``s`` 可以用來發送請求來取得頁面的文本。同"
139
139
"一個 socket 也會讀取回傳值,然後再被銷毀。是的,被銷毀。客戶端 socket 通常只"
140
- "用來做一次交換 (或是一小組序列的交換)。"
140
+ "用來做一次交換(或是一小組序列的交換)。"
141
141
142
142
#: ../../howto/sockets.rst:70
143
143
msgid ""
@@ -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 才能對外"
161
+ "有幾件事需要注意:我們使用了 ``socket.gethostname()``,這樣 socket 才能對外"
162
162
"部網路可見。如果我們使用了 ``s.bind(('localhost', 80))`` 或 ``s."
163
- "bind(('127.0.0.1', 80))`` ,我們會得到一個 \" 服務端\" socket,但是只能在同一"
164
- "台機器內可見。 ``s.bind(('', 80))`` 指定 socket 可以通過機器的任何地址存取。"
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、SNMP"
173
+ "等)。如果你只是想執行程式,可以使用一個較高的端口(4位數字)。"
174
174
175
175
#: ../../howto/sockets.rst:91
176
176
msgid ""
@@ -180,7 +180,7 @@ msgid ""
180
180
"should be plenty."
181
181
msgstr ""
182
182
"最後,``listen`` 引數告訴 socket 函示庫 (library) ,我們希望在佇列 (queue) 中"
183
- "累積多達 5 個 (正常的最大值) 連接請求後再拒絕外部連接。如果其餘的程式碼編寫"
183
+ "累積多達 5 個(正常的最大值)連接請求後再拒絕外部連接。如果其餘的程式碼編寫"
184
184
"正確,這應該足夠了。"
185
185
186
186
#: ../../howto/sockets.rst:95
@@ -209,11 +209,11 @@ 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
215
"現在最重要的是理解:這就是\" 服務端\" socket 做的\\ *所有* \\ 事情。它不會發送任何"
216
- "資料。 也不接收任何資料。它只會建立\" 服務端\" socket 。每個 ``clientsocket`` "
216
+ "資料。也不接收任何資料。它只會建立\" 服務端\" socket。每個 ``clientsocket`` "
217
217
"都是為了回應某些\\ *其他* \\ ``connect()`` 到我們綁定的主機上的\" 客戶端\" socket。"
218
218
"一但 ``clientsocket`` 建立完成,就會繼續監聽更多的連接請求。兩個\" 客戶端\" 可"
219
219
"以隨意的通訊 - 它們使用的是一些動態分配的端口,會在對話結束的時候被回收並重新"
0 commit comments