3

I have a incoming stream of bytes (unsigned char) from either a file or network. I need this data placed in a class, and is looking for a NET-way of doing this.

I bet some does this all the time, so I guess there is a better method to do this than using BitConverter.

I realize I supplied too litle information. Let me try with an example class:

class data { 
void doSmething(); 
int var1; 
float var2; 
} 

Then I want to transfer the data (var1 and var2) contained in this class over f.ex. a network socket and receive the data on the other end

0

4 Answers 4

3

As Jon mentioned, it's not clear, what you need. Maybe you are talking about maybe it is Binary serialization what you are looking for?

Sign up to request clarification or add additional context in comments.

1 Comment

I believe Binary serialization is the closest to what I need. Thanks!
1

It's not entirely clear what you mean, but if you're basically looking for a way to buffer the data so you can get at it later, MemoryStream is probably your best bet. Write all your data to it, then set Position to 0 and you can read the data back again.

2 Comments

I realize I supplied too litle information. Let me try with an example class: class data { void doSmething(); int var1; float var2; } Then I want to transfer the data (var1 and var2) contained in this class over f.ex. a network socket and receive the data on the other end.
Right. You need a serialization framework, basically. There are lots of options here. For a cross-platform approach, I can recommend (with some bias) Google Protocol Buffers. Other alternatives include .NET's own binary serialization protocol, or XML serialization.
1

You have 2 options or Binary Serialization (as PiRX said) or XML Serialization, for performance, the better is binary, but i prefer xml serialization for its readibility:

 [Serializable]
    [XmlRoot("CONFIGURATION")]
    public class Configuration
    {
        EnterpriseCollection enterprises;
        public Configuration()
        {

            enterprises= new EnterpriseCollection();
        }
        [XmlElement("ENTERPRISE")]
        public EnterpriseCollection Enterprises
        {
            get
            {
                return this.enterprises;
            }
            set
            {
                this.enterprises = value;
            }
        }
        private string name;
        [XmlElement("NAME")]
        public string Name
        {
            get
            {
                return name;
            }
            set
            {
                name = value;
            }
        }

Comments

0

you can use the std::string class. One of its constructors takes char* as an argument so you can go straight from char* to string. and string is a great way of storing your character strings. go to http://www.cppreference.com/ for more information on about strings

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.