out.addAnswer(new DNSRecord.Service(info.name, TYPE_SRV, CLASS_IN, 60, info.priority, info.weight, info.port, info.name), 0);
out.addAnswer(new DNSRecord.Service(info.name, TYPE_SRV, CLASS_IN, 60, info.priority, info.weight, info.port, host.name), 0);
    public synchronized void registerService(ServiceInfo info) throws IOException    {	try {	    // check for a unqiue name	    checkService(info);	    // add the service	    services.put(info.name, info);	    // announce the service	    long now = System.currentTimeMillis();	    long nextTime = now;	    for (int i = 0 ; i < 3 ;) {		if (now < nextTime) {		    wait(nextTime - now);		    now = System.currentTimeMillis();		    continue;		}		DNSOutgoing out = new DNSOutgoing(FLAGS_QR_RESPONSE | FLAGS_AA);		out.addAnswer(new DNSRecord.Pointer(info.type, TYPE_PTR, CLASS_IN, 60, info.name), 0);		out.addAnswer(new DNSRecord.Service(info.name, TYPE_SRV, CLASS_IN, 60, info.priority, info.weight, info.port, info.name), 0);		out.addAnswer(new DNSRecord.Text(info.name, TYPE_TXT, CLASS_IN, 60, info.text), 0);		out.addAnswer(new DNSRecord.Address(info.name, TYPE_A, CLASS_IN, 60, info.getIPAddress()), 0);		send(out);		i++;		nextTime += 225;	    }	} catch (InterruptedException e) {	    throw new IOException("interrupted I/O");	}    }