@@ -17,9 +17,8 @@ msgstr ""
17
17
"Generated-By : Babel 2.17.0\n "
18
18
19
19
#: ../../library/selectors.rst:2
20
- #, fuzzy
21
20
msgid ":mod:`!selectors` --- High-level I/O multiplexing"
22
- msgstr ":mod:`selectors` --- 고수준 I/O 다중화"
21
+ msgstr ":mod:`! selectors` --- 고수준 I/O 다중화"
23
22
24
23
#: ../../library/selectors.rst:9
25
24
msgid "**Source code:** :source:`Lib/selectors.py`"
@@ -40,7 +39,6 @@ msgstr ""
40
39
"수준 프리미티브를 정확하게 제어하고 싶지 않으면, 사용자는 이 모듈을 대신 사용하는 것이 좋습니다."
41
40
42
41
#: ../../library/selectors.rst:20
43
- #, fuzzy
44
42
msgid ""
45
43
"It defines a :class:`BaseSelector` abstract base class, along with "
46
44
"several concrete implementations (:class:`KqueueSelector`, "
@@ -51,8 +49,9 @@ msgid ""
51
49
msgstr ""
52
50
"여러 파일 객체에 대한 I/O 준비 알림을 기다리는 데 사용할 수 있는 몇 가지 구체적인 구현 "
53
51
"(:class:`KqueueSelector`, :class:`EpollSelector`...)과 함께 "
54
- ":class:`BaseSelector` 추상 베이스 클래스를 정의합니다. 다음에서 \" 파일 객체\" 는 :meth:`fileno()`"
55
- " 메서드가 있는 모든 객체나 날 파일 기술자를 가리킵니다. :term:`파일 객체 <file object>`\\ 를 참조하십시오."
52
+ ":class:`BaseSelector` 추상 베이스 클래스를 정의합니다. 다음에서 \" 파일 객체\" 는 "
53
+ ":meth:`~io.IOBase.fileno` 메서드가 있는 모든 객체나 날 파일 기술자를 가리킵니다. :term:`파일 객체 "
54
+ "<file object>`\\ 를 참조하십시오."
56
55
57
56
#: ../../library/selectors.rst:26
58
57
msgid ""
@@ -110,6 +109,12 @@ msgid ""
110
109
"+-- DevpollSelector\n"
111
110
"+-- KqueueSelector"
112
111
msgstr ""
112
+ "BaseSelector\n"
113
+ "+-- SelectSelector\n"
114
+ "+-- PollSelector\n"
115
+ "+-- EpollSelector\n"
116
+ "+-- DevpollSelector\n"
117
+ "+-- KqueueSelector"
113
118
114
119
#: ../../library/selectors.rst:56
115
120
msgid ""
@@ -232,14 +237,13 @@ msgid "Change a registered file object's monitored events or attached data."
232
237
msgstr "등록된 파일 객체의 감시되는 이벤트나 첨부된 데이터를 변경합니다."
233
238
234
239
#: ../../library/selectors.rst:137
235
- #, fuzzy
236
240
msgid ""
237
241
"This is equivalent to ``BaseSelector.unregister(fileobj)`` followed by "
238
242
"``BaseSelector.register(fileobj, events, data)``, except that it can be "
239
243
"implemented more efficiently."
240
244
msgstr ""
241
- "이것은 더 효율적으로 구현될 수 있다는 점을 제외하면, :meth:` BaseSelector.unregister(fileobj)` "
242
- "다음에 :meth:` BaseSelector.register(fileobj, events, data)`\\ 하는 것과 동등합니다."
245
+ "이것은 더 효율적으로 구현될 수 있다는 점을 제외하면, `` BaseSelector.unregister(fileobj)`` 다음에 "
246
+ "`` BaseSelector.register(fileobj, events, data)` `\\ 하는 것과 동등합니다."
243
247
244
248
#: ../../library/selectors.rst:141
245
249
msgid ""
@@ -425,10 +429,36 @@ msgid ""
425
429
" callback = key.data\n"
426
430
" callback(key.fileobj, mask)"
427
431
msgstr ""
428
-
429
- #~ msgid ":const:`EVENT_READ`"
430
- #~ msgstr ":const:`EVENT_READ`"
431
-
432
- #~ msgid ":const:`EVENT_WRITE`"
433
- #~ msgstr ":const:`EVENT_WRITE`"
432
+ "import selectors\n"
433
+ "import socket\n"
434
+ "\n"
435
+ "sel = selectors.DefaultSelector()\n"
436
+ "\n"
437
+ "def accept(sock, mask):\n"
438
+ " conn, addr = sock.accept() # 준비돼 있어야 합니다\n"
439
+ " print('accepted', conn, 'from', addr)\n"
440
+ " conn.setblocking(False)\n"
441
+ " sel.register(conn, selectors.EVENT_READ, read)\n"
442
+ "\n"
443
+ "def read(conn, mask):\n"
444
+ " data = conn.recv(1000) # 준비돼 있어야 합니다\n"
445
+ " if data:\n"
446
+ " print('echoing', repr(data), 'to', conn)\n"
447
+ " conn.send(data) # 블록하지 않기를 바랍니다\n"
448
+ " else:\n"
449
+ " print('closing', conn)\n"
450
+ " sel.unregister(conn)\n"
451
+ " conn.close()\n"
452
+ "\n"
453
+ "sock = socket.socket()\n"
454
+ "sock.bind(('localhost', 1234))\n"
455
+ "sock.listen(100)\n"
456
+ "sock.setblocking(False)\n"
457
+ "sel.register(sock, selectors.EVENT_READ, accept)\n"
458
+ "\n"
459
+ "while True:\n"
460
+ " events = sel.select()\n"
461
+ " for key, mask in events:\n"
462
+ " callback = key.data\n"
463
+ " callback(key.fileobj, mask)"
434
464
0 commit comments