2011-11-04 3 views
5

मुझे वर्तमान में अपने एप्लिकेशन और सर्वर के बीच संचार डीबग करने की आवश्यकता है। मैं tcpdump स्विच के साथ एमुलेटर शुरू करके पैकेट पर कब्जा करने में सक्षम हैं:ओएसएक्स पर वायरसहार्क में एंड्रॉइड एमुलेटर से टीसीपीडम्प का लाइव दृश्य कैसे प्राप्त किया जा सकता है?

%emulator -tcpdump emulator.cap @MyDroid 

समस्या मेरे पास है, कि मैं बंद करने के लिए एमुलेटर जरूरत है इससे पहले कि मैं Wireshark में emulator.cap फ़ाइल खोल सकते है। अन्यथा, वायरशर्क शिकायत करेगा कि कैप्चर अपूर्ण है। यह प्रक्रिया बहुत धीमी है। मैं Wireshark में emulator.cap फ़ाइल का लाइव दृश्य प्राप्त करने में सक्षम होना चाहता हूं।

ऐसा लगता है कि यह पाइप का उपयोग करना संभव होना चाहिए। मैं ओएस   एक्स पर अपना विकास कर रहा हूं और इस गाइड से वे 1 और वे 2 की कोशिश की है: http://wiki.wireshark.org/CaptureSetup/Pipes

यह कम से कम मुझे कैप्चर का एक स्नैपशॉट देखने की अनुमति देता है, लेकिन मुझे वास्तविक समय में अपडेट नहीं मिल रहा है। Wireshark में रीफ्रेश बटन पर क्लिक करने से कब्जे वाले पैकेट अपडेट नहीं होते हैं। मुझे अपडेट प्राप्त करने के लिए वायरशर्क को बंद करना और फिर से खोलना है (जो एमुलेटर को फिर से लॉन्च करने से तेज है)।

ओएस   एक्स पर वायरसहार्क में एंड्रॉइड एमुलेटर से लाइव कैप्चर देखने के लिए क्या कदम हैं?

उत्तर

2

नामित पाइप बनाकर शुरू करें और इसे पढ़ने के लिए वायरशर्क खोलें। फिर, उसी नामित पाइप को लिखने के लिए एमुलेटर के tcpdump को निर्देशित करें। Wireshark इस क्रम में चीजों को करने के लिए संवेदनशील प्रतीत होता है, अन्यथा यह libcap प्रारूप के बारे में शिकायत करेगा।

%mkfifo /tmp/emulator 
%wireshark -k -i /tmp/emulator & 
%emulator -tcpdump /tmp/emulator @MyDroid 

अपडेट::

थोड़ी देर के लिए इस का उपयोग कर के बाद, यह भंगुर हो रहा है

यहाँ आदेशों हैं। मैंने वायर्सहार्क को एक पैकेट के बारे में शिकायत की है, और इन सभी चरणों को फिर से भरकर पुनर्प्राप्त करने का एकमात्र तरीका था। क्या कोई बेहतर/अधिक मजबूत समाधान है?

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