From: Antoine Pitrou Date: Sat, 5 Feb 2011 11:24:15 +0000 (+0000) Subject: Mention asyncore and Twisted in the library FAQ. X-Git-Tag: v3.2rc3~49 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7095721d3eb563c7104c4b4a6a53aa62def29d53;p=python Mention asyncore and Twisted in the library FAQ. --- diff --git a/Doc/faq/library.rst b/Doc/faq/library.rst index 06a1ae64c7..ee099cfbe9 100644 --- a/Doc/faq/library.rst +++ b/Doc/faq/library.rst @@ -757,7 +757,8 @@ some sample code:: How do I avoid blocking in the connect() method of a socket? ------------------------------------------------------------ -The select module is commonly used to help with asynchronous I/O on sockets. +The :mod:`select` module is commonly used to help with asynchronous I/O on +sockets. To prevent the TCP connect from blocking, you can set the socket to non-blocking mode. Then when you do the ``connect()``, you will either connect immediately @@ -771,6 +772,12 @@ just return the errno value. To poll, you can call ``connect_ex()`` again later -- ``0`` or ``errno.EISCONN`` indicate that you're connected -- or you can pass this socket to select to check if it's writable. +.. note:: + The :mod:`asyncore` module presents a framework-like approach to the problem + of writing non-blocking networking code. + The third-party `Twisted `_ library is + a popular and feature-rich alternative. + Databases =========