2011-11-07 29 views
8

मैं आईओएस दस्तावेज़ की जांच करता हूं और थोड़ी देर के लिए इसे Google भी करता हूं और इंप्रेशन प्राप्त करता हूं कि आईओएस सांबा का समर्थन नहीं करता है (हालांकि आईफोन के लिए एक सांबा ऐप है)।आईओएस पर एसएमबी/सांबा समर्थन?

लेकिन फिर ऐप FileBrowser कैसे प्राप्त करता है? क्या इसका मतलब है कि उन्होंने स्वयं द्वारा सांबा समर्थन लागू किया?

मुझे यह भी पता चलता है कि tango नामक एक ओपन सोर्स लाइब्रेरी है जो सांबा के लिए सीमित समर्थन प्रदान करती है। तो मेरा सवाल यह है कि मुझे सबसे अच्छा सांबा समर्थन मिल सकता है?

उत्तर

6

मैंने अपने स्वयं के एसएमबी क्लाइंट को लागू करने में काफी समय बिताया है, इसलिए मैं यहां कुछ अनुभव साझा करना चाहता हूं।

सबसे पहले अपने उत्पादन कोड में टैंगो का उपयोग न करें क्योंकि एक बार जब आप एसएमबी से परिचित हो जाते हैं तो आपको पता चलेगा कि इसका कार्यान्वयन समस्याग्रस्त है, उदा। यह यूनिकोड का समर्थन नहीं करता है और कुछ मामलों में यह सही ढंग से पैडिंग नहीं है ताकि आप फ़ोल्डर तक नहीं पहुंच सकें। और मैंने यह भी सुना कि लोगों ने कहा कि वे इसके साथ विंडो 7 को कनेक्ट नहीं कर सकते हैं।

दूसरा, मेरे अनुभव संक्षेप में प्रस्तुत करने मैं jcifs guys had said the best लगता है: "जो कोई CIFS एक बहुत ही महत्वपूर्ण बात यह है कि पता करने की जरूरत है लागू करने के लिए चाहता है -" आधिकारिक "CIFS प्रलेखन सही नहीं है और वास्तविकता को प्रतिबिंबित नहीं करता वहाँ कोई विनिर्देश है। । कुछ भी आप IETF ड्राफ़्ट या SNIA दस्तावेज़ (एक ही दस्तावेज़ विभिन्न स्वरूपण) में पढ़ा विश्वास करते नहीं। केवल एक संकेत के रूप में यह प्रयोग करें। निश्चित संदर्भ जो कुछ भी आप तार पर देखते हैं।

WireShark नियम!

... डिजाइन प्रेरणा के लिए जेसीआईएफएस देखें जैसे कि यह फिर से कैसे रखता है एमआईडी और एन्कोड और डीकोड फ्रेम द्वारा मानचित्र में खोज और प्रतिक्रिया।

तो निम्न कमांड को लागू:

  • SMB_COM_NEGOTIATE
    SMB_COM_SESSION_SETUP_ANDX
    SMB_COM_TREE_CONNECT_ANDX
    SMB_COM_NT_CREATE_ANDX
    SMB_COM_READ_ANDX
    SMB_COM_WRITE_ANDX
    SMB_COM_CLOSE
  • ऊपर के लिए सभी प्रतिक्रियाओं "

केवल एक चीज मैं जोड़ सकते हैं, आप भी पता लगाने के लिए कितने साझा फ़ोल्डर सर्वर को उजागर करता है आप की जरूरत है TRANS2_FIND_FIRST2 अनुरोध/प्रतिक्रिया एक फ़ोल्डर के अंदर और अगर आप चाहते हैं फ़ाइलें क्वेरी करने के लिए लागू करने की आवश्यकता है लागू करें NetShareEnum अनुरोध/प्रतिक्रिया।

+0

बस उत्सुक है, क्या आपका कार्यान्वयन NTLMv2 का समर्थन करता है? – user523234

+0

नहीं। यह उल्लेख करना भूल गया कि प्रमाणीकरण एक और हिस्सा है जिसे लागू करने में काफी समय लगेगा। मैं वर्तमान में केवल एनटीएलएम लागू करता हूं। – Qiulang

1

आईओएस आपको उस फाइल सिस्टम तक पहुंच नहीं देता है जिसका उपयोग आप कर सकते हैं। आप अपने ऐप के निजी क्षेत्र के अंदर फ़ाइलों को पढ़ और लिख सकते हैं, लेकिन यह सब कुछ है। आप संभावित रूप से अपने आवेदन में एक और फाइल सिस्टम लागू कर सकते हैं, लेकिन आप सामान्य फ़ाइल संचालन का उपयोग करने में सक्षम नहीं होंगे।

मैं शर्त लगाता हूं कि फ़ाइलब्राउज़र प्रोटोकॉल को उनके ऐप के अंदर लागू करता है और उस फ़ाइल सिस्टम को लागू करता है जैसे एक्सेस के लिए उस पर परत। मुझे लगता है कि आप या तो मौजूदा सांबा पुस्तकालय को बंद करने या अपना खुद का रोल करने का प्रयास कर सकते हैं।

7

मैंने आईओएस पर एसएमबी संचालन के लिए सांबा पैकेज (http://www.samba.org) से libsmbclient का उपयोग किया। आप मेरी परियोजना https://github.com/kolyvan/kxsmb (libsmbclient पर उद्देश्य-सी रैपर) देख सकते हैं। अभी के लिए यह एसएमबी संचालन के सीमित सेट का समर्थन करता है। इसे ज्यादातर स्थानीय नेट ब्राउज़ करने और एसएमबी शेयरों से फ़ाइलों को पुनर्प्राप्त करने के लिए डिज़ाइन किया गया था।

+1

अच्छी लाइब्रेरी। मुझे 'रेक' कमांड जारी रखने में असमर्थ होने के साथ एक समस्या का सामना करना पड़ा। मुझे एक [समाधान] मिला [http://www.jattcode.com/installing-autoconf-automake-libtool-on-mac-osx-mountain-lion/) एक [मुद्दे] में (https://github.com/ कोलिवन/केक्सएसएमबी/मुद्दे/14) आपके जिथब में। असल में मुझे ऐसा करके ऑटोकॉन्फ़ स्थापित करने की आवश्यकता थी: (1) 'curl -OL http: // ftpmirror.gnu.org/autoconf/autoconf-2.69.tar.gz' (2) 'tar -xzf autoconf-2.69.tar.gz '(3)' सीडी ऑटोकॉन्फ-2.6 9' (4) './configure && make && sudo इंस्टॉल करें 'लिंक को सड़ने के मामले में मैंने यह जानकारी यहां दी है :) – Keale

1

आईओएस के पास एसएमबी के साथ काम करने के लिए कोई एपीआई नहीं है। हालांकि, वर्तमान में एसएमबी माइक्रोसॉफ्ट द्वारा दस्तावेज किया गया है और इसे कार्यान्वित करना असंभव नहीं है (हालांकि यह भी आसान नहीं है)। मैंने एक फ्रीवेयर प्रोजेक्ट बनाया है जिसमें एसएमबी को संभालने के लिए आपको सबसे ज्यादा आवश्यकता है। देखें

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

+0

केवल अप्रचलित सांबा v1 (जैसे विंडोज एक्सपी संगत) – bernstein

+0

@ निक फ्रोलोव मैं पीसी नाम के साथ आईपी पता कैसे प्राप्त कर सकता हूं। मुझे बहुत सारी चीज़ें मिलती हैं लेकिन कोई सफलता नहीं मिलती है। क्रिप्या मेरि सहायता करे। धन्यवाद –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^