Herstellen und senden von Daten über NSNetService

Ich versuche mit UDP eine Kommunikation zwischen einem iPhone-app und eine Mac app mit NSNetService.

Habe ich so weit gekommen, wie zu setup-die Mac-app zu veröffentlichen NSNetService, dass die iPhone-app entdecken können, aber ich kann nicht herausfinden, wie das senden von Daten zwischen Ihnen.

In meinem Mac app Veröffentliche ich meinen NSNetService mit:

self.netService = [[NSNetService alloc] initWithDomain:@"" type:@"_sputnik._tcp" name:@"" port:port];
if (self.netService) {
    [self.netService scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:@"PrivateMyMacServiceMode"];

    [self.netService setDelegate:self];
    [self.netService publish];
    [self.netService startMonitoring];
    NSLog(@"SUCCESS!");
} else {
    NSLog(@"FAIL!");
}

Sieht alles gut aus und die delegate-Methode - (void)netServiceDidPublish:(NSNetService *)sender (in der Mac-app) ausgelöst wird.

In der iPhone app mache ich eine Instanz von NSNetServiceBrowser und nach ein oder zwei Sekunden löst die didFindService delegate-Methode.

- (void)netServiceBrowser:(NSNetServiceBrowser *)aNetServiceBrowser didFindService:(NSNetService *)aNetService moreComing:(BOOL)moreComing {
    TRACE;
    NSLog(@"moreComing: %d", moreComing);
    self.connectedService = aNetService;
    if (!moreComing) {
        self.connectedService.delegate = self;
        [self.connectedService resolveWithTimeout:30];
    }
}

Und direkt nach diesem er stößt die nächste delegate-Methode - (void)netServiceDidResolveAddress:(NSNetService *)sender.

Hier ich weiß nicht, ob es verbunden ist, nicht, finde keine Methode connect och Status Verbindung auf sender.

So, ich versucht, schreiben auf den Ausgabe-stream mit:

[self.connectedService getInputStream:&istream outputStream:&ostream];
NSString *test = @"test";
NSData *data = [test dataUsingEncoding:NSUTF8StringEncoding];
[ostream write:[data bytes] maxLength:[data length]];

Und auch die Aktualisierung der TXTRecordData mit [sender setTXTRecordData:data];. Ich bekomme keine Fehler und nichts passiert in meinem Mac-App. Die Mac app hat die delegate-Methode - (void)netService:(NSNetService *)sender didUpdateTXTRecordData:(NSData *)data.

Ich weiß nicht, wie es weitergehen soll. Ich denke, ich bin etwas fehlt, aber ich weiß nicht, ob es in der Mac-app oder iPhone app. Ich nehme an, dass ich zum ersten mal anschließen müssen, um irgendwie aus der iPhone-app, um die app für den Mac, und die Mac-app etwas hinzufügen, das hört sich ja eine Verbindung.

  • Heyho, hast du eine Lösung für dieses? Ich habe ein ähnliches Problem und wäre wirklich daran interessiert zu hören, was Sie getan haben.. Cheers
InformationsquelleAutor fredrik | 2012-08-21
Schreibe einen Kommentar