मुझे कच्चे बाइनरी डेटा के साथ एक टीसीपी फ्रेम बनाने की आवश्यकता है, लेकिन बाइट्स के बारे में बात करने वाले सभी उदाहरणों और ट्यूटोरियल में हमेशा एक स्ट्रिंग से रूपांतरण शामिल होता है, और यह मेरी आवश्यकता नहीं है।पायथन 3 बाइट्स की एक सरणी बनाना
संक्षेप में, मैं सिर्फ बाइट्स की एक सरणी का निर्माण करने की जरूरत है:
0xA2 0x01 0x02 0x03 0x04
कृपया ध्यान दें कि मैं C/C++ दुनिया से आते हैं।
मैं कोशिश की है इस:
frame = b""
frame += bytes(int('0xA2',16))
frame += bytes(int('0x01',16))
frame += bytes(int('0x02',16))
frame += bytes(int('0x03',16))
frame += bytes(int('0x04',16))
फिर, सॉकेट की विधि भेजने के लिए इस फ्रेम चर फेंक, लेकिन काम नहीं कर के रूप में फ्रेम के रूप में की उम्मीद शामिल नहीं है जो मैं चाहता ...
मुझे पता है कि यह पाइथन के बारे में एक बहुत ही बुनियादी सवाल है, इसलिए यदि आप मुझे सही दिशा में इंगित कर सकते हैं ...
उपर्युक्त कोड के साथ समस्या यह है कि सूची के बजाय पूर्णांक दिए जाने पर 'बाइट्स' बहुत अलग तरीके से व्यवहार करता है। आपको 'फ्रेम + = बाइट्स ([int ('0xa2', 16)] का उपयोग करना चाहिए)। –
मुझे पता है कि आप गतिशील रूप से ऐसा करने के लिए (ed) चाहते हैं, लेकिन पूरी तरह अस्पष्ट क्या है: इनपुट बाइट कहां से आते हैं? आप टेक्स्ट फ़ाइल से हेक्स नोटेशन पढ़ते हैं? आप स्रोत कोड में प्रत्येक बाइट लिखते हैं? क्या आप उन्हें एक बाइटरीरे में रखते हैं जिसे आपने बाइनरी से बाइनरी पढ़ने से प्राप्त किया है? –