asyncore module provides a “reactive” socket implementation.
Instead of creating socket objects and calling methods on them to do
things, this module allows you to write code that is called when something
can be done. To implement an asynchronous
socket handler, subclass
dispatcher class, and override one or more
of the following methods:
handle_connect is called when a connection is
handle_expt is called when a connection fails.
handle_accept is called when a connection request
is made to a listening socket. The callback should call the
accept method to get the client socket.
handle_read is called when there is data waiting to
be read from the socket. The callback should call the
recv method to get the data.
handle_write is called when data can be written to
the socket. Use the
send method to write data.
handle_close is called when the socket is closed or
traceback) is called if a
Python error occurs in any of the other callbacks. The default
implementation prints an abbreviated traceback to
Example 7-7 shows a time client, similar to the one for the
Example 7-7. Using the asyncore Module to Get the Time from a Time Server
File: asyncore-example-1.py import asyncore import socket, time # reference time (in seconds since 1900-01-01 00:00:00) TIME1970 = 2208988800L # 1970-01-01 00:00:00 class TimeRequest(asyncore.dispatcher): # time requestor (as defined in RFC 868) ...