Class Lectures and Reading Assignments
CS 33600
Network Programming
Spring, 2025

This page documents what we do in class. It contains Java programs that we will discuss in class, reading assignments, simple homework exercises that you can work on for practice and exam preparation (not for credit), and links to other sources of information. It is a good idea for you to "play" with the example Java programs; compile them, run them, make simple changes to them and compile and run them again.

Today we will continue to look at the differences between static and dynamic web pages.

The next folder contains HTTP servers that implement the POST method, which lets us consider another aspect of dynamic web pages.

Look at these introductions to HTML Forms, a very basic way to create dynamic web pages.

Today we will look at how HTTP implements persistent connections, and then we will start to look at the difference between a static and a dynamic web page.

Look at these overviews of HTTP persistent connections.

Today we will look at how a web browser and a web server use HTTP to interact as the browser parses a static HTML document for a web page.

Here is are two overviews of HTTP servers.

Here are several overviews of HTTP.

Spring Break - No class today.

Spring Break - No class today.

Today we will continue talking about HTTP from both the client and the server ends.

Here is the simplified HTTP grammar.

To talk about HTTP and how it is used by web browsers and servers, we need to be familiar with the basics of web page technology, HTML, CSS, and JavaScript. Here are a few basic introductions.

See the programming assignment page for your third assignment.

Today we will begin talking about the HTTP application layer protocol. We will first look at the protocol more from the client's end.

Here is a simplified grammar for HTTP that's adapted from Illustrated Guide to HTTP. This syntax describes the language spoken by an HTTP client-server pair in the yellow box of the socket API.

Here is a very brief summary of HTTP (from Fundamentals of Web Programming).

Read this overview of HTTP.

The first midterm exam is today.

For next week, read Section 3.2.3 about HyperText Transfer Protocol (HTTP) in the following book.

The first midterm exam will be this Wednesday, on March 5. See the review/practice material from last week.

If we have time, we will look at some of these client-server experiments.

Remember that the first midterm exam is one week from today, on March 5. Below are all the exam review problems including the network programming material.

The exam will be over the sample code listed below and the material from these previous reading assignments.

Today we will start looking at these client-server examples.

They help explain how a client-server pair can coordinate the reversing of the read/write roles in this flowchart. They reverse roles when one reaches the "out of data" to send to the other.

The programs in this folder let us do more experiments with how clients and servers communicate with each other.

Today we will finish looking at these client-server examples.

Here is a well written overview of how a client-server connection works over the Internet, from this computer systems textbook.

Remember that the first midterm exam is two weeks from today, on March 5. Below are the updated exam review problems including the network programming material.

Read Section 3.1 (pages 27 - 31), about application level protocols, in the following book.

Today we will continue looking at the client-server examples.

Here are links to the client-server "flow chart".

Here is another introductory chapter about network programming.

Here is a much more detailed overview of networking.

Today we will start looking at the client-server examples.

Because of the weather, class met using the Zoom application.

Here is a link to today's video lecture.

The first midterm exam is three weeks from today, on March 5. Below are exam review problems for the material that we have covered so far (Java I/O, byte streams, data formats, character encodings). Next week there will be some more review problems about network programming.

Today we will look at these network programming examples.

Here is another introduction to Java network programming.

Today we will finish the Unicode code examples.

We will start to look at these networking code examples.

See the programming assignment page for your second assignment.

Today we will look at the Unicode code examples.

Read sections 1 and 2 from the following introductory chapter about network programming.

Read sections 1, 2, and 3 (first seven pages) from the following introductory chapter about network programming.

Next week we will look at these networking code examples.

Today we will look at the following code examples about character sets, character encodings, and code pages.

Read the following introductory chapter about network programming.

Today we will finish the data code examples.

We will briefly look at the following code examples that show how to detect the end-of-file condition on a byte stream.

Read this introduction to character sets.

Today we will look at these code examples.

Read the following overview of Java I/O streams.

Read sections 1, 2, 3, 4, and 5 from the following chapter about Java I/O.

Today we will finish looking at these code examples that demonstrate how buffers can affect programs.

No class. Martin Luther King Jr. Day.

See the programming assignment page for your first assignment.

Here is another chapter about Java I/O classes. This reference has a good explanation of Java's use of the decorator pattern in the design of the stream classes.

Here are code examples that we will use in class today.

Read the first 18 pages of this chapter on Java I/O streams.

Here are code examples that we will use in class this for the next few weeks. Read the Readme.txt files in each folder.

Here are some books that we will use as references this semester. We will only need one or two chapters from each book. You should be able to download a pdf of each book (or individual chapters) while you are on campus.