SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: U2_Caparzo en Lunes 28 de Mayo de 2012, 07:38

Título: Constructor de paquetes
Publicado por: U2_Caparzo en Lunes 28 de Mayo de 2012, 07:38
Hola a todos, esta es una clase que quizas a alguien le sirva, es para construir paquetes que son enviados a traves de la internet, solo he testeado agregar bytes y ints, pero deberia funcionar con el resto, habran maneras mejores pero me siento feliz por haber hecho esto ^^
Lo hice ya que como proyecto de aprendizaje estoy programando un servidor de Conquer online desde "0" (los sockets y la criptografia son copiadas)

Esta en ingles porque la comunidad mas desarrollada en servidores de este juego es de E.E.U.U







Código: [Seleccionar]
    public class Builder
    {
        public static void WriteByte(byte val, int offset, byte[] Data)
        {
            Data[offset] = val;
        }
        public static void WriteUInt16(ushort val, int offset, byte[] Data)
        {
            Data[offset] = (byte)val;
            Data[++offset] = (byte)(val >> 8);
        }
        public static void WriteUInt32(uint val, int offset, byte[] Data)
        {
            Data[offset] = (byte)val;
            Data[++offset] = (byte)(val >> 8);
            Data[++offset] = (byte)(val >> 16);
            Data[++offset] = (byte)(val >> 24);
        }
        public static void WriteUInt64(ulong val, int offset, byte[] Data)
        {
            Data[offset] = (byte)val;
            Data[++offset] = (byte)(val >> 8);
            Data[++offset] = (byte)(val >> 16);
            Data[++offset] = (byte)(val >> 24);
            Data[++offset] = (byte)(val >> 32);
            Data[++offset] = (byte)(val >> 40);
            Data[++offset] = (byte)(val >> 48);
            Data[++offset] = (byte)(val >> 56);
        }
        public static void WriteString(string val, int offset, byte[] Data)
        {
            for (int i = 0; i < val.Length; i++)
            {
                Data[offset + i] = (byte)val[i];
            }
        }
    }