The Internet has completely changed how we use computers. Before, we focused on what we could do with the hardware on our desks; now we can think about what work can be done on machines distributed across the globe. In this chapter, you will learn some of the core techniques for communicating with other machines over networks, such as the Internet. You’ll begin by looking at one of the lowest level methods: using sockets. The rest of the recipes will look at higher-level techniques that hide much of the complexity surrounding Internet communications.