Used to send file

# Sending files

## Messages

Messages are 508 bytes in size. This is because that is the biggest message you can send over
udp without getting dropped.

The first 8 bytes or 64 bits in the message are used for telling what message this is.
The counting starts at 0.

The rest is content of the file

## Hole punch

A hole punch is a way for clients to communicate without requireing a port-forward.

[Here](https://en.wikipedia.org/wiki/UDP_hole_punching) is a wikipedia article about it.

But it works like this
1. Client A sends a udp message to client B:s ip-address and port.
2. Client B does the same as client A but with client A:s ip-address and port.
3. Now they are able to send messages over udp from where they have hole-punched to.

## Sending

It sends the file by sending many messages. When it's done it will send a message.
If any messages got dropped the reciever will send a list of those.
If the file was recieved correctly the reciever will send a message.


