Bonjour!
I have 20+ years of IT experience, programming in C, Perl, PHP, Java, shell etc. I started back in 1990's so obviously I had to program all the socket communication myself. I also worked on system and network administration in several operating systems/environments, most notable Linux and Cisco IOS, so I know the choreography of TCP, UDP and NAT quite well.
Hole punching is a clever but simple concept. It is not a problem to write a TCP or UDP clients for your network. This bid is for a TCP client and a very basic server. For UDP clients or a more sophisticated server, there can be a separate job.
Oh, in case it helps - je parle français aussi.
Best regards,
Mb