Book Image

Learning Python Network Programming

By : Dr. M. O. Faruque Sarker, Samuel B Washington, Sam Washington
Book Image

Learning Python Network Programming

By: Dr. M. O. Faruque Sarker, Samuel B Washington, Sam Washington

Overview of this book

Table of Contents (17 chapters)
Learning Python Network Programming
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
Index

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 it also more complicated to use, so for simplicity we'll stick with poll here. Again, the frameworks we discuss later automatically take advantage of epoll if it is available.

Finally, counter-intuitively, Python's poll interface lives in a module called...