This library is the box in which my first box is placed, the place where I may take the previous UDP library and keep it out of my sight by hiding it therein. This library succeeds at providing a very base selection of UDP functionality that should satisfy a reasonable amount of programs needing UDP.
I'm not pleased with how much of my first such design had to be discarded, but this design allows it to act as a layer on top of most any conceivable underlying UDP system; it can't get simpler without becoming useless. As a consequence, all possible errors, sans Fit_Error, can effectively happen for any reason; I recommend configuring the system's UDP separately and then ignoring errors without any further attempt to send datagrams; why, the idea that ICMP could have a UDP signal error is asinine.
I'm mostly, but not entirely, pleased with my naming in all respects, but will try to avoid changing any of them; I'm particularly pleased with Get, Hit, and the concept with the name of Fit. Smoothly naming pieces of a system well is such an important task, at which so many incompetent writers fail.
I can't claim I won't experiment with a different design later, if I could improve upon this design.
Here are the package specification, the package body, and an echo server.