I know when I wrote the library to get the MX records from a DNS server, using UDP, I had to follow these steps in the client in order to get the server's reply - open the datagram socket to the server (no message callback) - read from the datagram socket with a message callback - write to the datagram socket (no message callback) Hope that helps, -Sean