log.debug( "Received packet {}... size is {}", packet.getAddress() + ":" + packet.getPort(), packet.getLength() );
byte[] data = packet.getData();
log.debug( "Received packet of size {} bytes: {}", data.length, new String(data) );
Query q = Query.parse( data, 0 );
Response response = queryHandler.process( packet.getAddress(), q );
byte[] re = response.toByteArray();
DatagramPacket answer = new DatagramPacket( re, 0 );
answer.setLength( re.length );
answer.setAddress( packet.getAddress() );
answer.setPort( packet.getPort() );
socket.send( answer );