function run()
{
try {
$this->dns->on('query', xcallable($this, 'onQueryCallback'));
$this->dns->run();
} catch (\Hoa\Socket\Exception $e) {
throw new \InvalidArgumentException($e->getMessage());
}
}