For a programming project in school we have to design a basic client/server setup using tcp protocol and then udp protocol. I already got the TCP working using read() and write() from the C Socket library. I now need to create a “reliable UDP” system. For instance:
“When the server receives the length message it will wait up to 500 milliseconds for that number of bytes to be sent. If it receives the correct number of bytes, it will respond with a string containing the characters “ACK” (a common abbreviation for an acknowledgement). If it does not receive the correct number of bytes by the end of the timeout period, the server will give up and silently exit.”
I have the sendto() and recvfrom() functions set up, but I am not sure how to do the timeout feature so that it only waits 500ms for the second msg to be sent. I also have to do it later on the client side if it doesn’t receive the “ACK” and resend the length msg + msg a few times. How can do I do the timeout?
Add the following function in your program and use it instead of using the recvfrom function directly.
the following functiong has the same input parameter of recvfrom function + a timeout input parameter in the last