This page documents what we do in class. It contains programs that we will discuss in class and reading assignments from the textbook and various Internet resources.
The reading assignments are listed by the date on which they were assigned. The sample programs are listed by the date on which they were used. You can click on any .cpp , .h , .c , or .java link and see the source code. When you are viewing source code, you can use your browser's "File -> Save As..." menu item to save a copy of the file on your computer. It is a good idea for you to "play" with these example programs; compile them, run them, make simple changes to them and compile and run them again.
- Thursday, December 7.
- Here are the Final Exam questions. This is due Saturday, December 16.
- Here is a link to a very good paper, from Microsoft Research, on web services and Microsoft's TerraService.
- Tuesday, November 28.
- Read the following pdf file (from Operating System Concepts with Java Seventh Edition).
- We shall look at some of the Microsoft TerraServer web services.
- We shall look at some of the Google and Amazon.com web services.
- Here are two web sites that let you test the above web services.
- Here is a "SOAP client" that implements a single SOAP remote procedure call to a Google web service.
- Here are a few articles about SOAP.
- Here is a list of web services that you can try out.
- Tuesday, October 31.
- See the homework page for your sixth homework assignment.
- Here is a zip file containing programs that demonstrate simple thread synchronization, in particular, synchronization using (a very trivial form of) message passing..
- Here are a few references to message passing.
- Tuesday, October 17.
- See the homework page for your fifth homework assignment.
- Here is a short program that demonstrates a possible problem with the
select() function when used with keyboard input.
- Here is a zip file containing some references to information about networking and sockets programming.
- Thursday, October 5.
- Here is a server, based on server-template.c, that uses I/O Multiplexing.
- Here are links to a few interesting articles on I/O Multiplexing.
- Tuesday, October 3.
- See the homework page for your fourth homework assignment.
- Read Sections 13.4, 13.4, and 13.5, pages 861-882, from the CS:APP book.
- Here is a client, based on client-template.c, that uses I/O Multiplexing.
- Thursday, September 28.
- The Linux server that you have an account on has host name
kraftvserver.calumet.purdue.edu . The IP address for the server is 205.215.68.105 . You can use PuTTY to log onto the server and you can use the WinSCP to transfer files from a Windows computer to the Linux server. The ports that you can use on the server are ports numbered 8500 to 8510. You can connect to these ports directly from any computer on the campus network, but if you are off campus, then you need to follow a special set of instruction in order to connect a client process to a server using one of these ports. The following document, written by John Alberts, describes how to "tunnel" a connection from an off campus computer to one of these ports on the server.
- Tuesday, September 26.
- Read Sections 13.1 and 13.2, pages 848-861, from the CS:APP book.
- Here is a simple client, server pair of programs, made from the
client-template.c , server-template.c files, that is useful for experimenting with.
- Thursday, September 21.
- The following program helps explain the point with Problem 12.13, page 843, from the CS:APP textbook.
- A very interesting, educational, and useful tool when learning about the Internet and TCP/IP is PingPlotter Freeware, a graphical "tracerout" type program.
- Tuesday, September 19.
- See the homework page for your third homework assignment.
- Read Chapters 2 and 3, pages 9-33, from the book Pocket Guide to TCP/IP Sockets.
- The following two programs outline the structure of a sockets based client and server. These programs do not implement any application layer protocol. They can be used to build a lot of little sockets based experiments (e.g., make up your own very simple protocol).
- Thursday, September 14.
- Read Section 12.6, pages 834-841, from the CS:APP book.
- Look at the following three sets of "lecture notes" created by the authors of the CS:APP book.
- Tuesday, September 12.
- A very useful tool for playing around with application layer protocols is PuTTY. You can use either the putty.exe Secure Shell/Telnet client, or the puttytel.exe Telnet only client. These programs let you "talk" with a server in the server's own language (i.e., an application layer protocol).
- Another useful tool is the Mozilla Firefox web browser with the Live HTTP Headers extension. This extension lets you watch the dialog between the web browser and the server.
- A tool that you can use for watching almost any application layer protocol is TcpTrace.
- Here are links to pages that describe a few common application layer protocols.
- Thursday, September 7.
- See the homework page for your second homework assignment.
- Read Sections 12.4-12.5, pages 816-834, from the CS:APP book.
- Download and read the sample Chapters 8 and 11, from the book Understanding Unix/Linux Programming.
- Look at the following three sets of "lecture notes" created by the authors of the CS:APP book.
- Here is a brief help file about adding a collection of man pages to Cygwin and then creating a man page tool in the TextPad or SciTE editors.
- Here is a zip file with some sample code for today. In particular, note the sample Makefiles.
- Tuesday, September 5.
- Read Sections 12.1-12.3, pages 802-816, from the CS:APP book.
- Read Chapter 1, pages 1-8, from the book Pocket Guide to TCP/IP Sockets.
- Here is a link to a web site at SGI where you can search for (almost) any Unix/Linux function.
- Thursday, August 31.
- See the homework page for your first homework assignment.
- Read Section 8.5, pages 617-635, from the CS:APP book.
- Read Chapter 11, pages 778-797, from the CS:APP book.
- Tuesday, August 29.
- Before we start going over network programming, we need to go over some ideas about the Unix process model and Unix file I/O (Chapters 8 and 11 in the CS:APP textbook.)
- Read Sections 8.1-8.4, pages 586-617, from the CS:APP book.
- Also read Appendices B.1 and B.2, pages 925-929, from the CS:APP book.
- The following books are on reserve in the library for this course.
|
|