Announcements
- Schedule This Week and Next
- Assignment 5 due Wednesday at 11:59pm
- Assignment 6 Out Wednesday, due Wednesday, November 15th
Announcements (Continued)
- Today's Agenda
- Finish up multithreading by completing the ice-cream-parlor simulation.
- Start networking!
- Review telnet, ports, Google, RSS News Feeds, and the Facebook Graph from the command line and the browser.
- Implement a time server two ways.
- Introduce the notion of a socket, which is a glorified descriptor that allows two-way communcation (that means reading and writing on the same descriptor).
- Implement a time server using raw sockets and the write system call.
- Implement a second time server that layers a third-party C++ stream over the client socket so we can use C++'s stream semantics instead of the raw read and write system calls.
- Implement a third time server that's similar to the second one, except that it uses multithreading. Yay!
- Present set of high-level parallels outlining how similar normal function calls, system function calls, interprocess communication via pipes, and (finally) interhost communication via sockets are all fundamentally the same thing.
- Time permitting, implement a few network client applications.
- Reading:
- Read Sections 4.1 and 4.2 of the Saltzer & Kaashoek textbook. These two sections provide a wonderful discussion of the client-server model.
- Read all of Chapter 11 of Bryant & O'Hallaron (which is the third chapter of your reader).