iOS (o iPhone OS) supporta le operazioni sui file tramite le condivisioni di rete SMB? Se sì, ci sono documenti su come fare questo?iOS supporta le operazioni sui file tramite SMB?
risposta
ho pensato che ho fatto il lavoro tra il MacBook e il mio simulatore di iPhone ma non ha mai funzionato per le cartelle condivise sulla macchina Windows .. si prega di fare riferimento a una domanda separata Ho inviato - Using NSNetService class to make an SMB tcp ip connection to a folder shared on windows machine - con passi che ho preso ...
non abbiamo ancora testato, ma questo potrebbe aiutare: http://38leinad.wordpress.com/2011/03/23/windows-filesharing-library-for-ios/
non sei sicuro di SMB, ma ero in grado di leggere/scrivere file su un IPad jailbroken tramite SFTP. Versioni OS 4.1, 4.2, 4.3.
In una nota a margine, penso che la domanda abbia bisogno di un po 'di chiarimenti - cosa stai cercando di fare esattamente, e se stai lavorando con un dispositivo normale o jailbroken. Le risposte possono variare molto se si conoscono queste cose.
Si può anche fare riferimento alla mia esperienza, sono riuscito a implementare un client SMB per iOS: SMB/samba support on iOS?
ho usato libsmbclient dal pacchetto samba per le operazioni SMB su iOS. Puoi guardare il mio progetto https://github.com/kolyvan/kxsmb (wrapper ogg-c su libsmbclient). Per ora supporta un numero limitato di operazioni SMB. Era principalmente progettato per navigare nella rete locale e recuperare file da condivisioni SMB.
' libsmbclient' è GPL, il che significa che qualsiasi app iOS che usa con essa deve essere GPL. – adib
iOS non ha API per funzionare con SMB. Tuttavia, SMB è attualmente documentato da Microsoft e l'implementazione non è impossibile (anche se non è semplice). Ho creato un progetto freeware che contiene la maggior parte di ciò che è necessario per gestire SMB. Vedere
https://sourceforge.net/projects/smb4ios/
Non usa Samba o altre librerie pesanti. Funziona principalmente per stampanti, ma con ciò che è già presente è facile aggiungere supporto per la gestione dei file o altro.
Non mi interessa il materiale GPL, puoi semplicemente riutilizzare il codice senza preoccupazioni. Basta controllare se la libreria NTLM che ho usato ha la licenza corretta per te (o implementa il tuo NTLM).
implementa solo l'ormai obsoleto samba v1 (ad esempio compatibile con windows xp) – bernstein
corretto. Il mio compito richiedeva il supporto per XP, perché ATM ha ancora un sacco di macchine XP esistenti. Altrimenti andrei con SMB 2, che è un formato migliore. –
Ho provato questo su macOS sierra (targeting per dispositivo iOS 10). Ho provato a connettermi alla condivisione SMB localhost e non è riuscito con ntstatus NOT_SUPPORTED, presumibilmente perché questo è un client v1 e l'SMB sierra è probabilmente v2. Ho provato a collegarmi a una condivisione su un aeroporto estremo (il punto della mia app) e non è riuscito con ntstatus NOT_IMPLEMENTED, indicando che l'aeroporto estremo non supporta qualcosa. In ogni caso, sfortunato. Buon lavoro sul progetto smb4ios, è bello avere il codice OSS in quel modo. –
Non hai funzionato affatto. Come la risposta alla domanda collegata afferma, 'NSNetService' è correlato al rilevamento dei servizi basato su Bonjour. Non ha nulla a che fare con la comunicazione effettiva tramite il protocollo SMB. – lemnar
Hai ragione. Ho postato questo prima di aver ricevuto risposta alla domanda collegata. La maggior parte della confusione è dovuta alla mancanza di documentazione sul parametro "type" nella seguente riga di codice 'self.netService = [[[NSNetService alloc] initWithDomain: @" 10.212.19.121 "type: @" _ smb._tcp. " nome: @ "lanmanserver"] autorelease] ' –