Fix off by one in string_value()
Fix fd two fd leaks. Add error messages.
Handle negative return values from recvfrom()
Add some checks to compilation
Exit at the end of main()