• Domingo 22 de Diciembre de 2024, 13:25

Autor Tema:  Constructor de paquetes  (Leído 1474 veces)

U2_Caparzo

  • Miembro activo
  • **
  • Mensajes: 45
  • Nacionalidad: cl
  • Super duper divertido xDD
    • Ver Perfil
Constructor de paquetes
« en: Lunes 28 de Mayo de 2012, 07:38 »
0
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];
            }
        }
    }
« última modificación: Lunes 28 de Mayo de 2012, 23:44 por U2_Caparzo »
Lo dificil se hace... lo imposible se intenta
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.(Frase de Albert Einstein)