2013-07-02 4 views
5

मैं एक कस्टम ब्लूटूथ प्रोजेक्ट पर कस्टम कस्टम हार्डवेयर से डेटा भेजने और प्राप्त करने के लिए काम कर रहा हूं। मैंने आधार के रूप में एसडीके में ब्लूटूथ चैट नमूना का उपयोग किया।एंड्रॉइड में ब्लूटूथ पर डेटा भेजने के लिए अधिकतम पैकेट आकार क्या है?

मैं एक डिवाइस से दूसरे डिवाइस (एलजी नेक्सस 4) को डेटा भेज रहा हूं। सब ठीक है जब तक कि मैं 1004 बाइट्स की लंबाई तक नहीं पहुंच जाता (यह ऑडियो डेटा है)। उस समय यह ज्यादातर मामलों में इसे 9 0 9 और 14 बाइट्स के 2 संदेशों में विभाजित करता है। लेकिन कभी-कभी यह बिना किसी विभाजन के 1004 भेज रहा है (100 में लगभग 4 बार)।

मैं 1004 बाइट्स का यह पैकेट भेज रहा हूं, जिसमें 4 बाइट्स मेरा हेडर है और शेष 1000 बाइट्स वास्तविक डेटा है जो मैं हेडर में कमांड के अनुसार उपयोग करना चाहता हूं, अब यदि ऊपर वर्णित अनुसार पैकेट विभाजित हो रहे हैं जिस तरह से मैं प्रवाह को संभाल नहीं सकता।

तो, कृपया मुझे बताएं कि पैकेट इस तरह क्यों विभाजित हो रहे हैं और मैं इस विभाजन को कैसे रोक सकता हूं या अगर मैं ऐसा नहीं कर सकता, तो कृपया मुझे ऐसा करने का कोई वैकल्पिक तरीका सुझाएं।

धन्यवाद।

+0

अधिकतम ब्लूटूथ पैकेट लंबाई 1024 बाइट है। मुझे लगता है कि यह लिंक आपके लिए उपयोगी है। http://stackoverflow.com/questions/9748219/bluetooth-file-transfer-android –

उत्तर

1

ब्लूटूथ सॉकेट के माध्यम से भेजा गया डेटा स्ट्रीम के रूप में सारणीबद्ध है। यहां परिवहन परत को पैकेट में तोड़ा गया है, जहां पैकेट का अधिकतम आकार लगभग 1 केबी (1000 बाइट्स) है। तो आप एक तंत्र तैयार कर सकते हैं जिसमें आप हेडर में संदेश की लंबाई जानकारी भेज सकते हैं, फिर पक्ष प्राप्त करने पर आपको read() कॉल करना होगा; एक पैकेट के लिए प्रत्येक वापसी डेटा।

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