Please add the error correction functionality to my code (see below). I need this done urgently by 22/10/2018 14:00 AEDT.
You are writing a file server based from my UDPClient and UDPServer files. The client connects to the server, requests a file and the server sends the file in 100 byte chunks to the client. The client writes the chunks into a file. Each chunk is wrapped in a header and trailer to make a packet.
You need to write a couple of classes first – one that creates a packet – see the diagram on the specification. It creates a string of ~105 bytes, made up of the things in the diagram. Get the 100 bytes of data from the file you are sending to the client., calculate the checksum (use a any algorithm which produces 1 byte of checksum – your choice), add the checksum and trailer to the packet and send. You can have a method to create the packet, a method to extract the data and a method the calculate or verify the checksum. Both the server and the client will use this class.
You also need a class to implement error correction and provide RTD (v. 2.2 or 3). At the receiver (client): That means you have methods that set or check the sequence number (if it’s repeated, drop the packet and request the other sequence number[send a NACK]); if it’s expected, process (extract, write data to file) and request the next packet. Send an ACK (the ack character) if the expected sequence number is received and the checksum you calculate matches the one ion the trailer) or send a NACK character if you get either the wrong sequence number or if the checksum is wrong). At the server, if you receive an ACK, delete the old sent packet and create the next one (flipping the sequence number). If you get a NACK, send the packeket again. If you date to implement RTD3, you need to add a timer which re-sends the packet if the timer expires before receiving an ACK or NACK.
I have been provided a Bridge class that simulates packet and Ack loss when both noLoss=false AckLoss=false. The UDP server must send a file to the client and the client must receive all packets fully and without error.