2010-09-07 2 views

Répondre

4

Je pensais que je l'ai fait travailler entre macbook et mon simulateur iPhone mais il n'a jamais travaillé pour des dossiers partagés sur la machine windows .. s'il vous plaît se référer à une autre question que j'ai posté - Using NSNetService class to make an SMB tcp ip connection to a folder shared on windows machine - avec des étapes que j'ai prises ...

+1

Vous ne l'avez pas fait fonctionner du tout. Comme la réponse à votre question liée indique, 'NSNetService' est lié à la découverte de services basée sur Bonjour. Cela n'a rien à voir avec la communication via le protocole SMB. – lemnar

+0

Vous avez raison. J'ai posté ceci avant que j'ai reçu la réponse à la question liée. La plus grande partie de la confusion est due au manque de documentation sur ce que fait le paramètre "type" dans la ligne de code suivante 'self.netService = [[[NSNetService alloc] initWithDomain: @" 10.212.19.121 "type: @" _ smb._tcp. " name: @ "lanmanserver"] autorelease] ' –

1

ne suis pas sûr SMB, mais j'ai pu lire/écrire des fichiers sur un IPad jailbreaké en utilisant SFTP. OS versions 4.1, 4.2, 4.3. Sur une note de côté, je pense que la question a besoin d'un peu de clarification - qu'est-ce que vous essayez exactement de faire, et si vous travaillez avec un appareil ordinaire ou jailbreaké. Les réponses peuvent varier grandement en sachant ces choses.

0

je libsmbclient du paquet samba pour les opérations SMB sur iOS. Vous pouvez regarder sur mon projet https://github.com/kolyvan/kxsmb (wrapper objectif-c sur libsmbclient). Pour l'instant, il prend en charge un ensemble limité d'opérations SMB. Il a été principalement conçu pour naviguer sur le réseau local et récupérer des fichiers à partir de partages SMB.

+0

' libsmbclient' est GPL, ce qui veut dire que toute application iOS qui l'utilise doit aussi être GPL. – adib

0

iOS ne dispose d'aucune API pour fonctionner avec SMB. Cependant, SMB est actuellement documenté par Microsoft et sa mise en œuvre n'est pas impossible (même si elle n'est pas facile). J'ai créé un projet freeware qui contient la plupart de ce dont vous avez besoin pour gérer SMB. Voir

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

Il n'utilise Samba ou tout autre poids lourd bibliothèques. Fonctionne principalement pour les imprimantes, mais avec ce qui existe déjà, il est facile d'ajouter un support pour la gestion des fichiers ou autre. Je ne me soucie pas de choses GPL, vous pouvez simplement réutiliser le code sans soucis pour cela. Vérifiez simplement si la bibliothèque NTLM que j'ai utilisée a la bonne licence pour vous (ou implémentez votre propre NTLM).

+0

ne met en œuvre que la v1 samba désormais obsolète (par exemple compatible avec Windows XP) – bernstein

+0

Correct. Ma tâche nécessitait du support pour XP, car il existe encore beaucoup de machines XP. Sinon, j'irais avec SMB 2, qui est un meilleur format. –

+0

J'ai essayé ceci sur macOS sierra (ciblant un appareil iOS 10). J'ai essayé de me connecter au partage localhost SMB, et il a échoué avec ntstatus NOT_SUPPORTED, sans doute parce que c'est un client v1 et que la sierra SMB est probablement v2. J'ai essayé de me connecter à un partage sur un aéroport extrême (le point de mon application) et il a échoué avec ntstatus NOT_IMPLEMENTED, indiquant que l'extrême de l'aéroport ne supporte pas quelque chose. De toute façon, pas de chance. Bon travail sur le projet smb4ios, c'est cool d'avoir du code OSS comme ça. –

Questions connexes