public function send(MessageInterface $message, $target)
    {
        $msg = $message->getMessageString();
        if (strpos($target, ':')) {
            list($host, $port) = explode(':', $target);
        } else {
            $host = $target;
            $port = self::DEFAULT_UDP_PORT;
        }

        $sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
        if ($sock === false) {
            $errorCode = socket_last_error();
            $errorMsg = socket_strerror($errorCode);
            throw new \RuntimeException("Error creating socket: [$errorCode] $errorMsg");
        }

        socket_sendto($sock, $msg, strlen($msg), 0, $host, $port);
        socket_close($sock);
    }