Example #1
0
    private void MSG_ID_CHAT2()
    {
        NetStructManager.TestStruct chatstr;
        chatstr = (NetStructManager.TestStruct)NetStructManager.fromBytes(packet.bytes, typeof(NetStructManager.TestStruct));

        NetClient.Instance.RecvString = chatstr.str;

        Debug.Log(chatstr.header);
        Debug.Log(chatstr.msgid);
        Debug.Log(chatstr.m);
        Debug.Log(chatstr.n);
        Debug.Log(chatstr.str);
    }
Example #2
0
    void SendChat2()
    {
        NetStructManager.TestStruct chatstr;
        chatstr.header = 0;
        chatstr.msgid  = (ushort)MessageIdentifiers.ID.ID_CHAT2;
        chatstr.m      = 0.1f;
        chatstr.n      = 1000;
        chatstr.str    = m_inputString;

        byte[] bytes = NetStructManager.getBytes(chatstr);

        NetBitStream stream = new NetBitStream();

        stream.CopyBytes(bytes);

        m_netManager.Send(stream);

        //清空m_inputString
        m_inputString = "";
    }
Example #3
0
            public void Input()
            {
                while (true)
                {
                    string str = System.Console.ReadLine();
                    if (str.CompareTo("quit") == 0)
                    {
                        client.Disconnect(0);
                        NetThread.Abort();
                        break;
                    }
                    else
                    {
                        /*
                         * NetBitStream stream = new NetBitStream();
                         * stream.BeginWrite((ushort)MessageIdentifiers.ID.ID_CHAT);
                         * stream.WriteString(str);
                         * stream.EncodeHeader();
                         *
                         * client.Send(stream);
                         */

                        NetStructManager.TestStruct chatstr;
                        chatstr.header = 0;
                        chatstr.msgid  = (ushort)MessageIdentifiers.ID.ID_CHAT2;
                        chatstr.m      = 0.1f;
                        chatstr.n      = 100;
                        chatstr.str    = str;

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

                        NetBitStream stream = new NetBitStream();
                        stream.CopyBytes(bs);

                        client.Send(stream);
                    }
                }
            }
Example #4
0
            public override void Update()
            {
                NetPacket packet = null;

                while (true)
                {
                    for (packet = GetPacket(); packet != null;)
                    {
                        // 获得消息ID
                        ushort msgid = 0;
                        packet.TOID(out msgid);

                        switch (msgid)
                        {
                        case (ushort)MessageIdentifiers.ID.NEW_INCOMING_CONNECTION:
                        {
                            System.Console.WriteLine("新的连接:" + packet._peer.RemoteEndPoint.ToString());

                            _socketList.Add(packet._peer);
                            break;
                        }

                        case (ushort)MessageIdentifiers.ID.CONNECTION_LOST:
                        {
                            System.Console.WriteLine("一个用户退出");

                            _socketList.Remove(packet._peer);
                            break;
                        }

                        case (ushort)MessageIdentifiers.ID.ID_CHAT:
                        {
                            string chatdata = "";

                            // 读取聊天消息
                            NetBitStream stream = new NetBitStream();

                            stream.BeginRead2(packet);
                            stream.ReadString(out chatdata);
                            stream.EncodeHeader();

                            // 群发聊天消息
                            for (int i = 0; i < _socketList.Count; i++)
                            {
                                Socket sk = (Socket)_socketList[i];
                                if (sk == packet._peer)
                                {
                                    continue;
                                }
                                _server.Send(stream, sk);
                            }

                            //System.Console.WriteLine("收到消息:" + chatdata);
                            break;
                        }

                        case (ushort)MessageIdentifiers.ID.ID_CHAT2:
                        {
                            // 读取聊天消息
                            NetStructManager.TestStruct chatstr;
                            chatstr = (NetStructManager.TestStruct)NetStructManager.fromBytes(packet._bytes, typeof(NetStructManager.TestStruct));
                            System.Console.WriteLine("header:" + chatstr.header);
                            System.Console.WriteLine("msgid:" + chatstr.msgid);
                            System.Console.WriteLine("m:" + chatstr.n);
                            System.Console.WriteLine("n:" + chatstr.m);
                            System.Console.WriteLine("str:" + chatstr.str);

                            NetBitStream stream = new NetBitStream();
                            stream.CopyBytes(packet._bytes);

                            // 群发聊天消息
                            for (int i = 0; i < _socketList.Count; i++)
                            {
                                Socket sk = (Socket)_socketList[i];
                                if (sk == packet._peer)
                                {
                                    continue;
                                }
                                _server.Send(stream, sk);
                            }

                            break;
                        }

                        default:
                        {
                            // 错误
                            break;
                        }
                        }

                        packet = null;
                    } // end fore
                }     // end while
            }
Example #5
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();
        }
Example #6
0
            public override void Update()
            {
                NetPacket packet = null;

                while (true)
                {
                    for (packet = GetPacket(); packet != null;)
                    {
                        ushort msgid = 0;
                        packet.TOID(out msgid);

                        switch (msgid)
                        {
                        case (ushort)MessageIdentifiers.ID.CONNECTION_REQUEST_ACCEPTED:
                        {
                            System.Console.WriteLine("连接到服务器");
                            NetThread = new System.Threading.Thread(new System.Threading.ThreadStart(Input));
                            NetThread.Start();
                            break;
                        }

                        case (ushort)MessageIdentifiers.ID.CONNECTION_ATTEMPT_FAILED:
                        {
                            System.Console.WriteLine("连接服务器失败,请按任意键退出");
                            System.Console.Read();
                            return;
                        }

                        case (ushort)MessageIdentifiers.ID.CONNECTION_LOST:
                        {
                            System.Console.WriteLine("丢失与服务器的连接,请按任意键退出");
                            System.Console.Read();
                            return;
                        }

                        case (ushort)MessageIdentifiers.ID.ID_CHAT:
                        {
                            string chatdata = "";

                            NetBitStream stream = new NetBitStream();
                            stream.BeginRead2(packet);
                            stream.ReadString(out chatdata);

                            System.Console.WriteLine("收到消息:" + chatdata);
                            break;
                        }

                        case (ushort)MessageIdentifiers.ID.ID_CHAT2:
                        {
                            NetStructManager.TestStruct chatstr;

                            chatstr = (NetStructManager.TestStruct)NetStructManager.fromBytes(packet._bytes, typeof(NetStructManager.TestStruct));

                            System.Console.WriteLine("收到消息:" + chatstr.str);
                            break;
                        }

                        default:
                        {
                            // 错误
                            break;
                        }
                        }

                        packet = null;
                    } // end fore
                }     // end while
            }