CLR: .Net / Mono / Boo / Otros CLR > C#
Manejo de Socket Buffer (byte[])
(1/1)
loruMan:
Hola que tal. Se me ha presentado un problema intentando adaptar una aplicacion de tipo servidor (C#) a un cliente ya hecho en C++.
Les paso a explicar en que consiste el envio de datos desde el cliente:
--- Código: C++ ---char cData[1024];DWORD *dwp;WORD *wp; ZeroMemory(cData, sizeof(cData)); dwp = (DWORD *)cData; *dwp = 0x0442; // Seria el Identificado del mensaje wp = (WORD *)(cData + 4);*wp = 0x002; // Seria el tipo de mensaje // Demas datos del buffer a mandar
Yo desde mi aplicacion servidor estoy intentando corroborar estos datos. He probado varias maneras, ya sea utilizando metodos de copia de la clase Array y ninguna me ha resultado, por lo que comence a utilizar codigo no seguro.
Este codigo se refiere ya a la decodificacion del Buffer del socket, ya que los datos los recibo sin problema. Esto es lo ultimo que intente:
--- Código: C# ---byte[] m_Buffer; // Atributo de clase que contiene los bytes recibidos del cliente uint m_ID; // Atributo de clase que contiene el Identificador ushort m_Type; // Atributo de clase que contiene el tipo public unsafe void DecodeMainAttr(){ if (m_Buffer == null) return; fixed (byte *pBuffer = this.m_Buffer) { this.m_ID = *((uint *)pBuffer); this.m_Type = (*((ushort *)pBuffer + sizeof(uint)); // + 4 }}
El resultado de los datos en los 2 atributos son cualquier numero.
Espero una solucion a esto, gracias..
Navegación
Ir a la versión completa