Java socket abstraction for UDP, DTLS, TCP, etc.