Methodology

Compression/Decompression

Compression

To compress the file we use a huffman algorithm to create a binary code for each unique letter, with most of the codes being less than 8 digits. This means that we can turn a document full of 8 bit chars into something significantly smaller by representing most numbers with less than 8 bits.

Encryption/Decryption

A java program enrcrypts and decrypts the bits of the key file based on decisions made by analyzing the key image. The resulted text file after encryption/decryption is the same as the input key file.

Transmission

Sender

When calling the program the sender inputs the hostname of the receiver, the port that the sender is listening on, and the file that they want to transmit. The sender then creates a socket and attempts to connect to the receiver. Upon a successful connection the sender sends all of the data in the file, waits 3 seconds to give the sender time to process the data, then closes the connection.

Receiver

When calling the program the user can specify a port for the receiver to listen on, otherwise it will select a random port and let the user know which one it has chosen. It will then copy all of the data coming from the sender to a text file to be processed by other functions.

Learned

Team work experience that provided us with an overview of the real-world challenges.

Built With

Share this project:

Updates