Beispiel #1
0
            // note this ctor blocks until the packet is fully read
            public SIncomingPacket(NetworkStream stream)
            {
                //BinaryReader headerReader = new BinaryReader(stream, System.Text.Encoding.Unicode);
                BinaryReader reader = new BinaryReader(stream);

                header = new CTSPacketHeader(reader);

                //check that we have valid information...  It would be better to change the protocol to have some leading dummy bytes that we could check for
                if (header.mSize < 0 || header.mSize > cMaxPacketSize)
                {
                    throw new System.Exception(String.Format("Invalid Packet Size:{0} Type:{1}", header.mSize, header.mType));
                }

                //buffer = new byte[header.mSize];
                //stream.Read(buffer, 0, header.mSize);
                if (header.mSize > 0)
                {
                    buffer = reader.ReadBytes(header.mSize);
                }
            }