Пример #1
0
    private void SendControl()
    {
        NetBitStream stream = new NetBitStream();

        stream.BeginWrite((ushort)MessageIdentifiers.ID.PLAYER_ACTION);
        Player p = m_netManager.player;

        stream.WriteString(p.name);
        stream.WriteBool(p.first);
        stream.WriteFloat(p.pos_x);
        stream.WriteFloat(p.pos_y);
        stream.WriteFloat(p.hp);
        stream.WriteInt(p.ctype);
        int count = CGameManager.Instance.ControlList().Count;

        stream.WriteInt(count);

        List <byte> lc = CGameManager.Instance.ControlList();

        for (int i = 0; i < count; i++)
        {
            stream.WriteByte(lc[i]);
        }

        stream.EncodeHeader();

        m_netManager.Send(stream);
        CGameManager.Instance.ControlList().Clear();
    }
Пример #2
0
    public bool LinkWorld(out string msg)
    {
        if (false == m_netManager.bConnected)
        {
            msg = "无法连接到服务器,请稍后重试!";
            return(false);
        }
        m_netManager.iGameState = 0;
        NetBitStream stream = new NetBitStream();

        stream.BeginWrite((ushort)MessageIdentifiers.ID.CLIENT_LINK_WORLD);
        stream.WriteString(m_netManager.strUsername);
        stream.WriteInt(m_netManager.player.ctype);

        stream.EncodeHeader();
        m_netManager.Send(stream);
        msg = "";
        Stopwatch sw = new Stopwatch();

        sw.Start();
        while (0 == m_netManager.iGameState)
        {
            m_netManager.Update();
            long time = sw.ElapsedMilliseconds;
            if (time > 5000)
            {
                break;
            }
        }
        sw.Stop();
        if (1 == m_netManager.iGameState)
        {
            msg = m_netManager.strMessage;
            return(true);;
        }
        msg = m_netManager.strMessage;
        return(false);
    }
Пример #3
0
        static void Main(string[] args)
        {
            ushort id      = 10;
            byte   n       = 0;
            bool   b       = false;
            int    vint    = 100;
            uint   vint2   = 999;
            short  vshort  = 10;
            ushort vshort2 = 101;
            float  number  = 0.8f;
            string data    = "我是中国人";

            NetBitStream stream = new NetBitStream();

            stream.BeginWrite(id);
            stream.WriteByte(n);
            stream.WriteBool(b);
            stream.WriteInt(vint);
            stream.WriteUInt(vint2);
            stream.WriteShort(vshort);
            stream.WriteUShort(vshort2);
            stream.WriteFloat(number);
            stream.WriteString(data);
            stream.EncodeHeader();

            NetPacket packet = new NetPacket();

            packet.CopyBytes(stream);


            NetBitStream stream2 = new NetBitStream();

            stream2.BeginRead(packet, out id);
            stream2.ReadByte(out n);
            stream2.ReadBool(out b);
            stream2.ReadInt(out vint);
            stream2.ReadUInt(out vint2);
            stream2.ReadShort(out vshort);
            stream2.ReadUShort(out vshort2);
            stream2.ReadFloat(out number);
            stream2.ReadString(out data);

            System.Console.WriteLine(id);
            System.Console.WriteLine(n);
            System.Console.WriteLine(b);
            System.Console.WriteLine(vint);
            System.Console.WriteLine(vint2);
            System.Console.WriteLine(vshort);
            System.Console.WriteLine(vshort2);
            System.Console.WriteLine(number);
            System.Console.WriteLine(data);

            NetStructManager.TestStruct cif;
            cif.header = 10;
            cif.msgid  = 5;
            cif.m      = 0.9f;
            cif.n      = 10;
            cif.str    = "hello";


            byte[] bs = NetStructManager.getBytes(cif);
            NetStructManager.EncoderHeader(ref bs);

            NetStructManager.TestStruct cif2;
            System.Type type = typeof(NetStructManager.TestStruct);

            cif2 = (NetStructManager.TestStruct)NetStructManager.fromBytes(bs, type);

            System.Console.WriteLine(":" + bs.Length);
            System.Console.WriteLine(":" + cif2.header);
            System.Console.WriteLine(cif2.msgid);
            System.Console.WriteLine(cif2.m);
            System.Console.WriteLine(cif2.n);
            System.Console.WriteLine(cif2.str);


            ChatClient client = new ChatClient();

            client.Start();
            client.Update();
        }