iphone - sfuitext - sfprodisplay
Búsqueda de registros SRV con iPhone SDK (3)
Creo que necesitas usar el marco DNSServiceDiscovery. No tengo el iPhone SDK, pero una búsqueda en Google sugiere que está disponible en el iPhone.
Consulte el sitio para desarrolladores de Apple para obtener los detalles completos de la API .
También he incluido un código de muestra (incompleto):
#include <dns_sd.h>
int main(int argc, char *argv[])
{
DNSServiceRef sdRef;
DNSServiceErrorType res;
DNSServiceQueryRecord(
&sdRef, 0, 0,
"_xmpp-server._tcp.gmail.com",
kDNSServiceType_SRV,
kDNSServiceClass_IN,
callback,
NULL
);
DNSServiceProcessResult(sdRef);
DNSServiceRefDeallocate(sdRef);
}
Tendrá que proporcionar su propia función de devolución de llamada, y tenga en cuenta que el campo de rdata
enviado a la devolución de llamada está en formato de cable, por lo que tendrá que decodificar los datos brutos de los campos de registro SRV usted mismo.
En una terminal Windows o Mac OS X si escribe ...
nslookup -type=SRV _xmpp-server._tcp.gmail.com
... (por ejemplo) recibirás un montón de registros de SRV relacionados con diferentes servidores de chat de Google.
¿Alguien tiene alguna experiencia en esta área y posiblemente sepa cómo dar servicio a esta información (nombre de host, puerto, peso, prioridad) usando el iPhone SDK? He experimentado con las clases de Bonjour, pero aún no he tenido suerte.
¡Gracias!
Creo que su mejor opción es implementar una herramienta de consulta de DNS utilizando CFNetwork.
Intente leer más sobre esto aquí: http://developer.apple.com/documentation/Networking/Conceptual/CFNetwork/Introduction/chapter_1_section_1.html#//apple_ref/doc/uid/TP30001132-CH1-DontLinkElementID_24
Hmm, parece que no puedo ejecutar system()
en el simulador o el dispositivo. Puedo ejecutar NSTask
en el simulador, pero no en el iPhone, y NSTask
no es parte del marco de Foundation
.
El paquete ISC BIND tiene una licencia BSD. Si es factible, quizás las partes relevantes del código de dig
puedan incluir directamente en el proyecto.