11.1 "Socket to Me!"
The
previous chapter introduced Internet fundamentals and explored
sockets -- the underlying communications mechanism over which
bytes flow on the Net. In this chapter, we climb the encapsulation
hierarchy one level, and shift our focus to Python tools that support
the client-side interfaces of common Internet protocols.
We talked about the Internet's higher-level protocols in the
abstract at the start of the last chapter, and you should probably
review that material if you skipped over it the first time around. In
short, protocols define the structure of the conversations that take
place to accomplish most of the Internet tasks we're all
familiar with -- reading email, transferring files by FTP,
fetching web pages, and so on.
At the most basic level, all these protocol dialogs happen over
sockets using fixed and standard message structures and ports, so in
some sense this chapter builds upon the last. But as we'll see,
Python's protocol modules hide most of the underlying
details -- scripts generally need deal only with simple objects
and methods, and Python automates the socket and messaging logic
required by the protocol.
In this chapter, we'll concentrate on the FTP and email
protocol modules in Python, and peek at a few others along the way
(NNTP news, HTTP web pages, and so on). All of the tools employed in
examples here are in the standard Python library and come with the
Python system. All of the examples here are also designed to run on
the client side of a network connection -- these scripts connect
to an already-running server to request interaction and can be run
from a simple PC. In the next chapter, we'll move on to explore
scripts designed to be run on the server side instead. For now,
let's focus on the client.
|