A non-blocking socket I/O

In this section, we will see a small example code snippet to test a non-blocking socket I/O. This is useful if you know that the synchronous blocking connection is not necessary for your program. The following is an example of non-blocking I/O:

import socket

if __name__ == '__main__':
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.setblocking(0)
    sock.settimeout(0.5)
    sock.bind(("127.0.0.1", 0))

    socket_address =sock.getsockname()
    print("Asynchronous socket server launched on socket: %s" %str(socket_address))
    while(1):
        sock.listen(1)

This script will run a socket server and listen in a non-blocking style. This means you can connect more clients who won't be necessarily blocked for I/O.

Get Learning Python Network Programming now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.