title: TCP implementation in Java using UDP (Datagrams)
body: <p>For a file sharing application I would like to use TCP/IP Sockets. But this doesn't work because both clients are behind NATs. Therefore I have to use UDP and the hole punching method.</p>
  
  <p>Since UDP is not reliable, I have to implement a TCP-like protocol. I don't need streams. A message based protocol would be ok. Is there already a free Java library somewhere? If not, is there an abstract tutorial, how to implement such a protocol?</p>