2016-03-21 8 views
5

मेरे पास एक सी सॉकेट सर्वर है जो एक्सडीआर डेटा प्राप्त करता है। मैंने एक सी और जावा क्लाइंट लिखा है। मैं xdrlib का उपयोग कर एक पायथन क्लाइंट लिखने की कोशिश कर रहा हूं।पायथन एक्सडीआर टीसीपी स्ट्रीम

import xdrlib 

p = xdrlib.Packer() 
p.pack_int(5) 
p.pack_int(4) 
p.pack_int(3) 
data = p.get_buffer() 

जब मैं सर्वर डेटा के माध्यम से इसे डीकोड करता हूं तो अलग होता है। ऐसा इसलिए है क्योंकि डेटा को xdrmem डिकोडर के माध्यम से पढ़ने के लिए एन्कोड किया गया है। (उनके पास रिकॉर्ड की शुरुआत और अंत नहीं है)।

क्या किसी को पता है कि क्या पाइथन के लिए लाइब्रेरी है जो xdr रिकॉर्ड्स के निर्माण का समर्थन करता है? सी में यह xdrrec_create के माध्यम से किया जाता है और जावा में इसे XdrTcpEncodingStream कहा जाता है।

+0

न्यूनतम पैकेट लंबाई, पैकेट ब्लॉक आकार। वैश्विक उपयोग के लिए पैकेट पैटर्न बनाने की आवश्यकता है। प्रत्येक पैकेट में ब्लॉक परिभाषा होती है। हेडर परिभाषा के बिना संवाद मत करो। – dsgdfg

+0

क्षमा करें ... क्या आप अपनी टिप्पणी दोबारा कर सकते हैं? मैंने जो समझाया वह आपको नहीं मिला ... – Stefano

उत्तर

-2

मुझे ज्यादातर xdrlib अधिकतर पैकेज का उपयोग किया जाता है। जब आपके पास C या Java में प्रक्रियाएं हो सकती हैं, तो आप उन्हें सी/जावा में चला सकते हैं और Swig द्वारा बनाए गए इंटरफ़ेस का उपयोग करके इसे पाइथन में उपयोग कर सकते हैं। अगर मेरी समझ परिदृश्य के अनुरूप नहीं है तो मुझे बताएं।

+0

अच्छी तरह से ... मैंने अतीत में स्विग का उपयोग किया था, लेकिन अगर मैं सी पुस्तकालय का उपयोग करता हूं xdrrec_create डेटा को पुनः प्राप्त करने के लिए अलग-अलग कॉलबैक का उपयोग करता है। मुझे डर है कि पाइथन में मैप करना इतना आसान नहीं होगा। मैंने जावा संस्करण के चारों ओर लपेटने की कोशिश नहीं की। यदि मुझे पाइथन मॉड्यूल मिल सकता है जो मेरी ज़रूरतों को पूरा करता है तो मैं अन्यथा पसंद करता हूं, मुझे लगता है कि मैं अपने क्लाइंट को लिखने के लिए जावा से चिपक जाऊंगा (या जावा लाइब्रेरी को पायथन के लिए स्विग में लपेटें) – Stefano

+0

वह एक पायथन मॉड्यूल की तलाश में है। स्विग हमेशा एक समाधान है लेकिन वह नहीं पूछ रहा है कि वह क्या मांग रहा है – Cristas

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