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

[0] Índice de Mensajes

Ir a la versión completa