@@ -17,9 +17,8 @@ msgstr ""
1717"Generated-By : Babel 2.17.0\n "
1818
1919#: ../../library/selectors.rst:2
20- #, fuzzy
2120msgid ":mod:`!selectors` --- High-level I/O multiplexing"
22- msgstr ":mod:`selectors` --- 고수준 I/O 다중화"
21+ msgstr ":mod:`! selectors` --- 고수준 I/O 다중화"
2322
2423#: ../../library/selectors.rst:9
2524msgid "**Source code:** :source:`Lib/selectors.py`"
@@ -40,7 +39,6 @@ msgstr ""
4039"수준 프리미티브를 정확하게 제어하고 싶지 않으면, 사용자는 이 모듈을 대신 사용하는 것이 좋습니다."
4140
4241#: ../../library/selectors.rst:20
43- #, fuzzy
4442msgid ""
4543"It defines a :class:`BaseSelector` abstract base class, along with "
4644"several concrete implementations (:class:`KqueueSelector`, "
@@ -51,8 +49,9 @@ msgid ""
5149msgstr ""
5250"여러 파일 객체에 대한 I/O 준비 알림을 기다리는 데 사용할 수 있는 몇 가지 구체적인 구현 "
5351"(: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>`\\ 를 참조하십시오."
5655
5756#: ../../library/selectors.rst:26
5857msgid ""
@@ -110,6 +109,12 @@ msgid ""
110109"+-- DevpollSelector\n"
111110"+-- KqueueSelector"
112111msgstr ""
112+ "BaseSelector\n"
113+ "+-- SelectSelector\n"
114+ "+-- PollSelector\n"
115+ "+-- EpollSelector\n"
116+ "+-- DevpollSelector\n"
117+ "+-- KqueueSelector"
113118
114119#: ../../library/selectors.rst:56
115120msgid ""
@@ -232,14 +237,13 @@ msgid "Change a registered file object's monitored events or attached data."
232237msgstr "등록된 파일 객체의 감시되는 이벤트나 첨부된 데이터를 변경합니다."
233238
234239#: ../../library/selectors.rst:137
235- #, fuzzy
236240msgid ""
237241"This is equivalent to ``BaseSelector.unregister(fileobj)`` followed by "
238242"``BaseSelector.register(fileobj, events, data)``, except that it can be "
239243"implemented more efficiently."
240244msgstr ""
241- "이것은 더 효율적으로 구현될 수 있다는 점을 제외하면, :meth:` BaseSelector.unregister(fileobj)` "
242- "다음에 :meth:` BaseSelector.register(fileobj, events, data)`\\ 하는 것과 동등합니다."
245+ "이것은 더 효율적으로 구현될 수 있다는 점을 제외하면, `` BaseSelector.unregister(fileobj)`` 다음에 "
246+ "`` BaseSelector.register(fileobj, events, data)` `\\ 하는 것과 동등합니다."
243247
244248#: ../../library/selectors.rst:141
245249msgid ""
@@ -425,10 +429,36 @@ msgid ""
425429" callback = key.data\n"
426430" callback(key.fileobj, mask)"
427431msgstr ""
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)"
434464
0 commit comments