1.initializing DatagramChannel and bind it to specific port number, and connect it to the destination so that we can perform read and write later through this channel
DatagramChannel channel = DatagramChannel.open();
channel.connect(new InetSocketAddress("wallyjue.blogspot", 80));
2. prepare the buffering space for receiving data, note that if the received packet contains more data than the Buffer can contain, the remaining data is discarded silently.
ByteBuffer buf = ByteBuffer.allocate(48);