> Thanks, but maybe I don't explain it very well. I need to read the
> values written by another app, that is Unmanaged(C++,VB), in a socket. I
> can't alter the way the data is written, because is another app, but I
> know the structure of the data, just like:

> (C++)                           (C#)
> struct aMsg                     struct aMsg
> {                               {
>         DWORD a;                        int a;
>         DWORD b;                        int b;
>         DWORD c;                        int c;
> }                               }

> Then, the C++ structure is written in the socket, and then I receive the
> byte[] in C#. I want to do something like (so simple):

>         byte[] received;
>         aMsg myMsg=(aMsg)received;

First, check to ensure the proper length of the data.  Then write code
like the following:

MemoryStream ms = new MemoryStream(received);

BinaryReader br = new BinaryReader(ms);

myMsg.a = br.ReadInt32();
myMsg.b = br.ReadInt32();
myMsg.c = br.ReadInt32();



What I typically do is define a struct with FromArray() and ToArray()
methods that contain code like the above.  Then you can do the
following:

aMsg myMsg = new aMsg();

aMsg.FromArray(received);


HTH,



--
Steve Johnson
3t Systems

You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to