A low-level event-driven chat server
So the event-driven architecture has a few great benefits, the catch is that for a low-level implementation, we need to write our code in a completely different style. Let's write an event-driven chat server to illustrate this.
Note that this example will not at all work on Windows as Windows lacks the poll
interface which we will be employing here. There is an older interface, called select
, which Windows does support, however it is slower and more complicated to work with. The event-driven frameworks that we look at later do automatically switch to select
for us though, if we're running on Windows.
There is a higher performance alternative to poll
called epoll
, available on Linux operating systems, however ...
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.