In this project I worked in a team to design and improve upon a Network LAN Simulator. Its functions include uploading and downloading files between client and server. The first step was to make it able to upload and download in packets of specific sizes and then be able to enlarge the size later on with other improvements. Upon these improvements the simulator can utilize a simplified DNS server, allowing a user to use a remote host’s domain name to download files from remote host. Specifically, I worked on the upload functionality of this program that allows it to upload in multiple packets up to a specific amount of bytes, starting from a small amount then gradually increasing amounts of bytes for testing.