2010-09-07 6 views

Antwort

4

ich dachte ich, es zwischen macbook und mein iPhone Simulator arbeiten gemacht aber es funktionierte nie Ordner für auf Windows-Rechner gemeinsam genutzt .. finden Sie in einer separaten Frage, die ich geschrieben habe - Using NSNetService class to make an SMB tcp ip connection to a folder shared on windows machine - mit Schritten, die ich genommen habe ...

+1

Sie haben es überhaupt nicht funktionieren lassen. Wie die Antwort auf Ihre verknüpfte Frage besagt, ist "NSNetService" mit der Bonjour-basierten Dienstsuche verbunden. Es hat nichts damit zu tun, tatsächlich über das SMB-Protokoll zu kommunizieren. – lemnar

+0

Sie haben Recht. Ich habe dies gepostet, bevor ich die Antwort auf die verknüpfte Frage erhalten habe. Der größte Teil der Verwirrung liegt an der fehlenden Dokumentation darüber, was der "type" -Parameter in der folgenden Codezeile tut: self.netService = [[[NSNetService alloc] initWithDomain: @ "10.212.19.121" type: @ "_ smb._tcp." name: @ "lanmanserver"] autorelease] ' –

1

über SMB nicht sicher, aber ich war in der Lage ein jailbroken iPad zum lesen/schreiben von Dateien auf SFTP. Betriebssystemversionen 4.1, 4.2, 4.3.

Nebenbei denke ich, dass die Frage ein wenig Klärung benötigt - was genau versuchen Sie zu tun, und ob Sie mit einem regulären oder einem Jailbreak-Gerät arbeiten. Die Antworten können sehr unterschiedlich sein, wenn man diese Dinge kennt.

0

I libsmbclient von Samba-Paket für die SMB-Operationen auf iOS verwendet. Sie können auf mein Projekt https://github.com/kolyvan/kxsmb (objective Wrapper auf libsmbclient) schauen. Derzeit unterstützt es eine begrenzte Anzahl von SMB-Operationen. Es wurde hauptsächlich für das Durchsuchen lokaler Netzwerk- und Abrufdateien von SMB-Freigaben entwickelt.

+0

' libsmbclient' ist GPL, was bedeutet, dass jede iOS-App, die damit verwendet wird, auch GPL sein muss. – adib

0

iOS hat keine APIs, um mit SMB zu arbeiten. Allerdings ist SMB derzeit von Microsoft dokumentiert und die Implementierung ist nicht unmöglich (wenn auch nicht einfach). Ich habe ein Freeware-Projekt erstellt, das die meisten Dinge enthält, die Sie für die Arbeit mit SMB benötigen. Siehe

https://sourceforge.net/projects/smb4ios/

Es ist nicht Samba nicht verwendet oder andere schwere Bibliotheken. Funktioniert hauptsächlich für Drucker, aber mit dem, was bereits vorhanden ist, ist es einfach, Unterstützung für das Dateihandling oder was auch immer hinzuzufügen.

Ich interessiere mich nicht für GPL Zeug, können Sie einfach den Code ohne Bedenken für das wiederverwenden. Überprüfen Sie einfach, ob die NTLM-Bibliothek, die ich verwendet habe, die richtige Lizenz für Sie hat (oder implementieren Sie Ihre eigene NTLM).

+0

implementiert nur die jetzt veraltete Samba V1 (z. B. Windows XP kompatibel) – bernstein

+0

Korrekt. Meine Aufgabe erforderte Unterstützung für XP, denn ATM gibt es immer noch viele XP-Maschinen. Ansonsten würde ich mit SMB 2 gehen, was ein besseres Format ist. –

+0

Ich habe dies auf MacOS Sierra (Targeting auf ein iOS 10-Gerät) versucht. Ich versuchte, eine Verbindung mit dem localhost SMB-Freigabe, und es scheiterte mit Ntstatus NOT_SUPPORTED, vermutlich weil dies ein Client v1 ist und die Sierra SMB wahrscheinlich v2 ist. Ich versuchte, eine Verbindung zu einem Anteil an einem Flughafen Extrem (der Punkt meiner App) und es scheiterte mit Ntstatus NOT_IMPLEMENTED, was darauf hinweist, dass das Flughafen-Extrem etwas nicht unterstützt. So oder so, Pech gehabt. Gute Arbeit am smb4ios-Projekt, aber es ist cool, OSS-Code da draußen zu haben. –

Verwandte Themen