@@ -45,7 +45,7 @@ msgid ""
45
45
"them decently."
46
46
msgstr ""
47
47
"Sockets 在各處都被廣泛使用,但卻是一項被誤解最嚴重的技術之一。這是一篇對 "
48
- "sockets 的簡單介紹 。這並不是一個完整的教學指南 - 你還需要做許多準備才能讓 "
48
+ "sockets 的概論介紹 。這並不是一個完整的教學指南 - 你還需要做許多準備才能讓 "
49
49
"sockets 正常運作。這篇文章也沒有包含細節(其中有非常多的細節),但我希望這篇"
50
50
"文章能夠讓你有足夠的背景知識,以便開始正確的使用 sockets 程式設計。"
51
51
@@ -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
@@ -160,17 +160,17 @@ msgid ""
160
160
msgstr ""
161
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 ""
@@ -179,16 +179,16 @@ msgid ""
179
179
"outside connections. If the rest of the code is written properly, that "
180
180
"should be plenty."
181
181
msgstr ""
182
- "最後,``listen`` 引數告訴 socket 函示庫 (library) ,我們希望在佇列 (queue) 中"
183
- "累積多達 5 個(正常的最大值)連接請求後再拒絕外部連接。如果其餘的程式碼編寫"
182
+ "最後,``listen`` 引數告訴 socket 函式庫 (library),我們希望在佇列 (queue) 中"
183
+ "累積達 5 個(正常的最大值)連接請求後再拒絕外部連接。如果其餘的程式碼編寫"
184
184
"正確,這應該足夠了。"
185
185
186
186
#: ../../howto/sockets.rst:95
187
187
msgid ""
188
188
"Now that we have a \" server\" socket, listening on port 80, we can enter the "
189
189
"mainloop of the web server::"
190
190
msgstr ""
191
- "現在我們有一個監聽 80 端口的”服務端” socket 了,我們可以進入網路服務器的 "
191
+ "現在我們有一個監聽 80 連接埠的「伺服器端」 socket 了,我們可以進入網路伺服器的 "
192
192
"主迴圈了:\n"
193
193
"\n"
194
194
"::"
@@ -208,15 +208,15 @@ msgid ""
208
208
"The two \" clients\" are free to chat it up - they are using some dynamically "
209
209
"allocated port which will be recycled when the conversation ends."
210
210
msgstr ""
211
- "事實上,有三種方法可以讓這個迴圈運作 - 分配一個執行序 (thread) 來處理 "
212
- "``clientsocket`` 、建立一個新程序 (process) 來處理 ``clientsocket``,或者將"
213
- "這個程式重新改寫成使用非阻塞 socket,並使用 ``select`` 在我們的\" 服務端 \" "
211
+ "事實上,有三種方法可以讓這個迴圈運作 - 分配一個執行緒 (thread) 來處理 "
212
+ "``clientsocket`` 、建立一個新行程 (process) 來處理 ``clientsocket``,或者將"
213
+ "這個程式重新改寫成使用非阻塞 socket,並使用 ``select`` 在我們的「伺服器端」 "
214
214
"socket 和任何有效的 ``clientsocket`` 之間進行多工處理。稍後將會更詳細的介紹。"
215
- "現在最重要的是理解:這就是\" 服務端 \" socket 做的\\ *所有* \\ 事情。它不會發送任何"
216
- "資料。 也不接收任何資料。 它只會建立\" 服務端 \" socket。每個 ``clientsocket`` "
217
- "都是為了回應某些\\ *其他* \\ ``connect()`` 到我們綁定的主機上的\" 客戶端 \" socket。"
218
- "一但 ``clientsocket`` 建立完成,就會繼續監聽更多的連接請求。兩個\" 客戶端 \" 可"
219
- "以隨意的通訊 - 它們使用的是一些動態分配的端口,會在對話結束的時候被回收並重新 "
215
+ "現在最重要的是理解:這就是「伺服器端」 socket 做的\\ *所有* \\ 事情。它不會發送任何"
216
+ "資料、 也不接收任何資料, 它只會建立「伺服器端」 socket。每個 ``clientsocket`` "
217
+ "都是為了回應某些\\ *其他* \\ ``connect()`` 到我們綁定的主機上的「用戶端」 socket。"
218
+ "一但 ``clientsocket`` 建立完成,就會繼續監聽更多的連接請求。兩個「用戶端」 可"
219
+ "以隨意的通訊 - 它們使用的是一些動態分配的連接埠,會在通訊結束的時候被回收並重新 "
220
220
"利用。"
221
221
222
222
#: ../../howto/sockets.rst:121
0 commit comments