1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

[Cocoa] Mit Bonjour alle Clients im Netzwerk finden

Dieses Thema im Forum "OS X-Developer" wurde erstellt von .mitro, 21.11.06.

  1. .mitro

    .mitro Allington Pepping

    Dabei seit:
    14.09.04
    Beiträge:
    193
    Hi,

    nochmals vielen Dank an alle, die mir letztes Mal hier geholfen haben. Langsam gewöhn ich mich an Cocoa/ObjC/XCode (geht schneller als ich dachte).

    Konkrete Frage: Ich möchte alle Clients in meinem Netzwerk finden (bzw. alle, die Bonjour unterstützen). Habe zu diesem Zweck bereits alles notwendige gebastelt (einen NSNetServiceBrowser inklusive Delegate und so weiter).

    Funktioniert auch (getestet mit "_printer._tcp"), die Frage ist nur, nach welchem Service suche ich, wenn ich einfach nur die Clients finden möchte, die online sind? Dienste wie http o.Ä. sind ja nicht verlässlich, da sie deaktiviert oder nicht vorhanden sein können, obwohl der Rechner läuft.

    Oder löst man dieses Problem generell anders (in Cocoa, versteht sich)?

    Und kommt mir nicht mit einem Broadcast-Ping ;)

    Vielen Dank und liebe Grüße

    .mitro
     
  2. .mitro

    .mitro Allington Pepping

    Dabei seit:
    14.09.04
    Beiträge:
    193
    Um mir die Frage selbst zu beantworten: Dürfte mit "_workstation._tcp" funktionieren.

    Mich quälen aber noch zwei andere Fragen:

    1)
    Warum kann ich vom Delegate aus, der ein Outlet hat, das mit einem NSProgressIndicator verbunden ist, diesen nicht starten/stoppen? Wenn ich den Umweg über einen Controller gehe, klappt's.

    2)
    Ist es unverantwortlich, den NSNetServiceBrowser über die komplette Laufzeit des Programms im Hintergrund mitlaufen zu lassen (um Änderungen der verfügbaren Clients zu überwachen)?

    Nochmals danke und liebe Grüße

    .mitro
     
  3. Bölzebub

    Bölzebub Querina

    Dabei seit:
    27.05.05
    Beiträge:
    180
    Wenn ich mich richtig erinnere - ist schon ne Weile her, dass ich mich mal mit Rendezvous befasst hab - wird nur einmal am Anfang aktiv nach Services sucht, danach wird nur noch darauf gewartet, ob sich irgendwas ändert (neuer Service, Service gibt es nicht mehr). Von daher sollte es kein Problem sein, einen NSNetServiceBrowser im Hintergrund laufen zu lassen.
     
  4. seb2

    seb2 Gast

    Genau. Läuft über die Delegate-Methoden.

    Zu Deinem ersten Problem: Dein Outlet ist nicht zufälligerweise nil? Oder versuchst Du den ProgressIndicator zu starten bevor das Nib komplett geladen ist?
     
  5. .mitro

    .mitro Allington Pepping

    Dabei seit:
    14.09.04
    Beiträge:
    193
    Wäre auch meine erste Vermutung gewesen, dass das NIB noch nicht fertig geladen ist. Allerdings wird die Funktion zum Starten der Suche (und damit zum Starten des progressIndicators) erst in der awakeFromNib getriggert, womit man das ausschließen können müsste.

    Meine Outlets stimmen auch (soweit ich das beurteilen kann), aber ich kann von meinem Delegate aus auf gar kein Interface-Element so richtig zugreifen (gibt zwar keinen Fehler, es passiert aber auch nichts).

    Oder ist das ohnehin ein unschöner Cocoa-Stil und der Delegate sollte alles über einen separaten Controller abwickeln?

    Danke und liebe Grüße

    .mitro
     

Diese Seite empfehlen