make clean target more tolerant
TCP rewrite

use TCP instead of UDP
client/server architecture (at most one client per server)
support IPv6 (host AF selection only)
move select loop and initialization code into separate functions