| Project | Description |
| Simple UDP/TCP Client Servers |
Not very exciting but another one of those "essential steps". The basic cookie cutter code that
will be reused in some form or another for the rest of the network projects. Just sets up a basic client server
pair to do string manipulation.
Official Project Description
|
| DNS Client |
This is a command line basic DNS client. DNS is a binary protocol so this project demonstrates
bit packing of various types and adheres to the DNS RFC.
It lacks some features but functioned very well in demonstrating binary protocols, introducing UDP, and teaching us to read
a cryptic RFC.
Official Project Description
|
| FTP Client/Server
|
FTP Client and Server. This is the same project used for the network theory course.
Only performs a subset of the RFC's
specified command set. They do support passive however. The server seems to work well with the GNU ftp command
and the client seems to work with other wuftpd and vsftpd. This was also used to demonstrate
a forking server implementation.
Official Project Description
|
| HTTP Proxy
|
A HTTP proxy that performs basic proxying and possibly alters headers browser identification.
It also shows a threaded server implementation. I had to strip the "Connection: Keep-Alive" from
all headers and insert a "Connection: Close" instead to ease implementation details but it should
remain compliant with HTTP 1.0 (although not 1.1).
Official Project Description
|
| Proprietary Chat Environment
|
For the final project we had to develop our own protocol specification
as a class. Then we divided into small groups and each group implemented their own version adhereing to the specification. Basically it is a single server multi-client chat system. I was
responsible for the client and my partner wrote the server. I chose to use ANSI C and "select" on standard input and the
TCP socket. Mike chose to use C++ (which I dislike personally) and threading. Our server and clients were
then connected to the other group's implementations to prove compatibility with the specification.
Official Project Assignment
|
| >An index of all cs491 files can be found here. |