ProjectDescription
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.