Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>iPhone: NSString über Netzwerk senden

iPhone: NSString über Netzwerk senden

Christoph_M
Christoph_M03.10.1221:34
Moin,

ich bin noch recht neu in der ganzen Objektive-C und Cocoa Thematik, habe aber meine ersten Gehversuche erfolgreich gemeistert
Für die nächsten Schritte müsste ich in der Lage sein einen NSString von iOS Gerät A an iOS Gerät B zu übersenden, wobei die IP des Empfängers dem Sender bekannt ist und sich beide im selben Netz befinden.
Kann mir jemand eine Idee geben wie man das unter Cocoa Touch am geschicktesten angehen würde?

Dank schonmal für eure Denkanstöße!
Grüße,
Christoph
0

Kommentare

void
void03.10.1221:58
Guck dir am besten mal dieses Beispielprojekt von Apple zum Thema Bonjour an.
http://developer.apple.com/library/ios/#samplecode/BonjourWeb/Introduction/Intro.html

Bonjour hat den Vorteil, dass es auch über Bluetooth läuft, wodurch die Zeroconf-Vorteile erst richtig nutzbar werden. Der Verbindungsaufbau BT zu BT ist natürlich viel einfacher als über WLAN. Allerdings geht Bonjour über Bluetooth seit iOS 5 nur noch über low-level APIs...
„Developer of the Day 11. Februar 2013“
0
Christoph_M
Christoph_M04.10.1200:08
Hi void,

vielen Dank für den Hinweis auf Bonjour.
Ich glaub ich hab mich vorhin ungenau ausgedrückt: mit "im selben Netz" meinte ich, dass sie notwendiger weise im gleichen LAN sind. Das gleiche Netz kann auch das Internet sein, allerdings sind die beiden Geräte A und B direkt adressierbar, d.h. keiner sitzt hinter einem Router.
Im Endeffekt möchte ich (wahrscheinlich) über NSInput/outputStream Nachrichten verschicken.
Aber ein einfaches "ich mach da mal nen Port auf und hör drauf" wie damals (tm) unter Delphi scheint wohl nicht zu gehen.. oder doch?
0
Duck Dodgers04.10.1208:01
Bonjour alleine wird dir nicht viel Helfen! Bonjour dient nur zum Auffinden von Services und damit der Geräte im Netz. Bonjour selber ist nicht zum Übertragen von Daten gedacht.

Ansonsten, warum sollte das nicht gehen? Du hast da viele Möglichkeiten: z.B: NSConnection. Oder du nimmst nen fertiges Framework wie z.B. AsyncSocket:

https://github.com/robbiehanson/CocoaAsyncSocket
0
mar121y04.10.1208:19
ich habe seit Kurzem ein Problem mit dem Downloaden von Dateien über das 3G-Netzwerk auf dem iPhone .
0
Duck Dodgers04.10.1208:36
@mar121y
Und ich habe seit Heute das Problem, dass mein Wasser leer ist Ich glaube du bist im falschen Thread
0
void
void04.10.1209:25
Doch Bonjour ist genau der richtige Einstiegspunkt. Die Schwierigkeit ist nämlich das Auffinden von Geräten. Sobald du diese einmal hast, ist der Rest super einfach:

Du besorgst dir eine Instanz der Klasse NSNetService.
Auf Serverseite rufst du einmal "publish" auf und schon hast du ein ServerSocket. Clientseitig machst du ein "resolveWithTimeout:" und du bist verbunden.

Jetzt kannst du dir die Streams holen:
NSInputStream *in;
NSOutputStream *out;
[myNetService getInputStream:&in outputStream:&out];
„Developer of the Day 11. Februar 2013“
0
JF Sebastian04.10.1209:31
Hier ein weiterer Weg mit Sockets zu connecten:
Schön ist anders, aber es funktioniert. Die Seite bietet übrigens auch noch andere nette Tutorials.
0
Duck Dodgers04.10.1210:00
@void
Ich sagte nicht, dass Bonjour der falsche Einstiegspunkt ist! Bonjour kann aber nur zum Auffinden der Dienste genutzt werden. Bonjour hat nichts mit der Übertragung zu tun. Abgesehen davon ist Bonjour für Christoph nicht das richtige, wie er schrieb, will er Daten über bzw. im Internet austauschen. Bonjour ist erst mal nicht dafür gedacht über Netze hinaus Dienste aufzufinden. Aber nachdem er iPhones hat, die direkt adressierbar sind, kann er diese Geräte direkt ansprechen und benötigt daher auch Bonjour.
0
void
void04.10.1215:19
Duck Dodgers
wie er schrieb, will er Daten über bzw. im Internet austauschen.

nein:
Christoph_M
allerdings sind die beiden Geräte A und B direkt adressierbar, d.h. keiner sitzt hinter einem Router



Er schrieb auch, dass er gerade erst mit Cocoa anfängt, daher halte ich ein "ganzheitliches" Beispiel für sinnvoller als das herauspicken von irgendwelchen Core Foundation Socket-Details. Darum ging es mir mit dem Bonjour-Beispiel (welches eben nicht nur Bonjour enthält) .
„Developer of the Day 11. Februar 2013“
0
Duck Dodgers04.10.1215:28
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.