2010-09-07 13 views

Respuesta

4

pensé que hice que funcione entre el macbook y mi simulador de iPhone sin embargo, nunca trabajó para carpetas compartidas en máquina de las ventanas .. por favor referirse a una cuestión distinta que he fijado - Using NSNetService class to make an SMB tcp ip connection to a folder shared on windows machine - con medidas que he tomado ...

+1

usted no hizo que funcione en absoluto. Como dice la respuesta a su pregunta vinculada, 'NSNetService' está relacionado con el descubrimiento de servicios basado en Bonjour. No tiene nada que ver con la comunicación real a través del protocolo SMB. – lemnar

+0

Tienes razón. Publiqué esto antes de recibir respuesta a la pregunta vinculada. La mayor parte de la confusión es debido a la falta de documentación sobre qué parámetro "tipo" hace en línea de código siguiente 'self.netService = [[[NSNetService alloc] initWithDomain: @ "10.212.19.121" Tipo: " _ smb._tcp" @ name: @ "lanmanserver"] liberación automática] ' –

1

no está seguro acerca de SMB, pero yo era capaz de leer/escribir archivos en un IPAD jailbreak usando SFTP. OS versiones 4.1, 4.2, 4.3.

En una nota lateral, creo que la pregunta necesita un poco de aclaración: ¿qué es exactamente lo que estás tratando de hacer, y si estás trabajando con un dispositivo normal o con jailbreak. Las respuestas pueden variar enormemente si uno conoce estas cosas.

0

Solía ​​libsmbclient del paquete samba para las operaciones de SMB en iOS. Puede consultar mi proyecto https://github.com/kolyvan/kxsmb (contenedor object-c en libsmbclient). Por ahora, es compatible con un conjunto limitado de operaciones SMB. En su mayoría fue diseñado para navegar por la red local y recuperar archivos de acciones SMB.

+0

' libsmbclient' es GPL, lo que significa que cualquier aplicación iOS que la use debe ser también GPL. – adib

0

iOS no tiene ninguna API para trabajar con SMB. Sin embargo, SMB actualmente está documentado por Microsoft y su implementación no es imposible (aunque tampoco es fácil). Creé un proyecto freeware que contiene la mayoría de lo que necesita para manejar SMB. Ver

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

No utiliza Samba o cualquier otra biblioteca de gran peso. Funciona principalmente para impresoras, pero con lo que ya existe es fácil agregar soporte para el manejo de archivos o lo que sea.

No me importa acerca GPL cosas, sólo puede reutilizar el código sin preocupaciones para eso. Simplemente verifique si la biblioteca NTLM que utilicé tiene la licencia correcta para usted (o implemente su propia NTLM).

+0

solo implementa el ahora obsoleto samba v1 (por ejemplo, compatible con Windows XP) – bernstein

+0

Correcto. Mi tarea requiere soporte para XP, porque ATM todavía tiene muchas máquinas con XP. De lo contrario, iría con SMB 2, que es un mejor formato. –

+0

Intenté esto en macOS sierra (apuntando a un dispositivo iOS 10). he intentado conectar con el recurso compartido SMB localhost, y fracasó con NTSTATUS NOT_SUPPORTED, presumiblemente porque se trata de un cliente v1 y la sierra SMB es probablemente v2. traté de conectar a un recurso compartido en un extremo del aeropuerto (el punto de mi aplicación) y falló con NTSTATUS NOT_IMPLEMENTED, lo que indica la extrema aeropuerto no soporta algo. De cualquier forma, sin suerte. Buen trabajo en el proyecto smb4ios sin embargo, es genial tener código OSS por ahí. –