Beispiel #1
0
        public static SAMPLE.Hello Decode(byte[] buffer, int offset, int count)
        {
            if (count < 10) // header + tail
            {
                return(null);
            }

            // SignatureStart	(2 bytes little endian ushort) = 16018
            int    size      = 2;
            ushort signature = LittleEndianBytesToUshort(buffer, offset);

            if (signature != SIGNATURE_START)
            {
                return(null);
            }
            offset += size;

            // PacketLength		(2 bytes little endian ushort)
            size = 2;
            ushort packetLength = LittleEndianBytesToUshort(buffer, offset);

            if (count < packetLength)
            {
                return(null);
            }
            offset += size;

            // PacketID(unused)	(2 bytes little endian ushort) = 1
            size = 2;
            //ushort unused = LittleEndianBytesToUshort(buffer, offset);
            offset += size;

            // MessageLength	(2 bytes little endian ushort)
            size = 2;
            ushort messageLength = LittleEndianBytesToUshort(buffer, offset);

            offset += size;

            // Header			(PacketLength – 10 - MessageLength bytes google protocol buffer)
            size = packetLength - 8;

            MemoryStream mem = new MemoryStream();

            mem.Write(buffer, offset, size);
            mem.Seek(0, SeekOrigin.Begin);
            SAMPLE.Hello header = ProtoBuf.Serializer.Deserialize <SAMPLE.Hello>(mem);
            mem.Close();

            offset += size;

            // SignatureEnd		(2 bytes little endian ushort) = 16108
            size      = 2;
            signature = LittleEndianBytesToUshort(buffer, offset);
            if (signature != SIGNATURE_END)
            {
                return(null);
            }

            return(header);
        }
Beispiel #2
0
        public void OnSendButton()
        {
            if (network.IsConnected())
            {
                network.GetStream().Flush();

                SAMPLE.Hello message = new SAMPLE.Hello();
                message.message = inputField.text;
                byte[]        data   = CGSFNet.CGSFNetProtocol.Encode <SAMPLE.Hello>(message, (ushort)SAMPLE.ID.HELLO);
                NetworkStream stream = network.GetStream();
                stream.BeginWrite(data, 0, data.Length, WriteCallback, null);
            }
        }
Beispiel #3
0
        public void OnSendButton()
        {
            if(network.IsConnected())
            {
                network.GetStream().Flush();

                SAMPLE.Hello message = new SAMPLE.Hello();
                message.message = "test " + index.ToString();
                index++;
                byte[] data = CGSFNet.CGSFNetProtocol.Encode<SAMPLE.Hello>(message, (ushort)SAMPLE.ID.HELLO);
                NetworkStream stream = network.GetStream();
                stream.BeginWrite(data, 0, data.Length, WriteCallback, null);
            }
        }