A chat protocol

The main purpose of our protocol update will be to specify that clients must be able to accept all messages that are sent to them, whenever they are sent.

In theory, one solution for this would be for our client itself to set up a listening socket, so that the server can connect to it whenever it has a new message to deliver. In the real world, this solution will rarely be applicable. Clients are almost always protected by some kind of firewall, which prevents any new inbound connections from connecting to the client. In order for our server to make a connection to a port on our client, we would need to ensure that any intervening firewalls are configured to allow our server to connect. This requirement would make our software much ...

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.