System.IO.BinaryReader छोटे-छोटे प्रारूप में मान पढ़ता है।एक बाइनरी रीडर से नेटवर्क बाइट-ऑर्डर रूपांतरण को कैसे सरल बना सकता है?
मैं सर्वर साइड पर एक मालिकाना नेटवर्किंग पुस्तकालय से कनेक्ट होने में सी # आवेदन किया है। सर्वर-साइड नेटवर्क बाइट ऑर्डर में सबकुछ नीचे भेजता है, जैसा कि कोई उम्मीद करेगा, लेकिन मुझे लगता है कि क्लाइंट पक्ष पर इसका सामना करना अजीब है, खासकर हस्ताक्षरित मानों के लिए।
UInt32 length = (UInt32)IPAddress.NetworkToHostOrder(reader.ReadInt32());
एक ही रास्ता मैं धारा के बाहर एक सही अहस्ताक्षरित मूल्य प्राप्त करने के साथ आ गया है, लेकिन यह दोनों अजीब और बदसूरत लगता है, और मैं अभी तक अगर है कि बस बंद उच्च क्लिप जा रहा है परीक्षण करने के लिए है -ऑर्डर मान ताकि मुझे मजेदार बिटकॉन्टर सामान करना पड़े।
वहाँ किसी तरह मैं हर पढ़ा पर इन बदसूरत रूपांतरण से बचने के लिए पूरी बात के चारों ओर एक आवरण लेखन से कम याद कर रहा हूँ है? ऐसा लगता है कि पाठकों पर इस तरह की चीजों को आसान बनाने के लिए एंडियन-नेस विकल्प होना चाहिए, लेकिन मैं कुछ भी नहीं मिला हूं।
क्या मूल कोड सही ढंग से काम करता है जब बाइट देशी पूर्णांक का प्रतिनिधित्व कर सकता है? –
अब यह मदद नहीं करेगा, लेकिन मैं/लेखक बॉक्स बाहर Bigendian का समर्थन करने के लिए एक BinaryReder [कनेक्ट टिकट] (https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=484149) बनाया। इसके लिए वोट दें [यहां] (https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=484149)। –