From 7095721d3eb563c7104c4b4a6a53aa62def29d53 Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Sat, 5 Feb 2011 11:24:15 +0000 Subject: [PATCH] Mention asyncore and Twisted in the library FAQ. --- Doc/faq/library.rst | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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 ========= -- 2.40.0