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.