Hello Ctzof,
Your solution is realistic, there is no reason why it should not work, be sure however to choose because of the right reasons;
You are right that with UDP, you need to implement retries on the user layer, this means you have to program retries yourselves if a message is lost (implement some sort of handshake or message counter). TCP/IP has this implemented in the protocol layer itself, this is a major advantage for TCP/IP.
On the other hand, TCP/IP is stream oriented, this means that there is a continuous stream of bytes between the 2 communication partners where your program has to determine where a message starts and where it ends. It is like a water pipe, on the one side you pour bytes in, on the other they come out. Once you are 1 byte off on the reciever side, you are lost. UPD has the concept of sending data telegram by telegram, this makes synchronizing client and server much easier and adds to the reliability of the solution in the long term.
Best regards,
Johi