Пример #1
0
            public byte[] ToBytes()
            {
                var len = 1 + dest.BytesLength + 1 + additionalString.BytesLength(Encoding);

                if (extraStrings.Length > 0)
                {
                    if (extraStrings.Length > 255)
                    {
                        throw new Exception("extraString.Length > 255");
                    }
                    len += 1    // strings count
                           + 1; // check sum
                    foreach (var item in extraStrings)
                    {
                        len += item.BytesLength(Encoding);
                    }
                }
                var buf = new byte[len];
                var c   = 0;

                buf[c++] = (byte)((rd.Next() % 128) * 2);
                dest.ToBytes(buf, ref c);
                byte sum = 233;

                for (int i = 0; i < c; i++)
                {
                    sum += buf[i];
                }
                buf[c++] = sum;
                var sumBegin = c;

                sum = 66;
                additionalString.ToBytes(Encoding, buf, ref c);
                if (extraStrings.Length > 0)
                {
                    buf[c++] = (byte)extraStrings.Length;
                    foreach (var item in extraStrings)
                    {
                        item.ToBytes(Encoding, buf, ref c);
                    }
                    for (int i = sumBegin; i < c; i++)
                    {
                        sum += buf[i];
                    }
                    buf[c++] = sum;
                }
                return(buf);
            }
Пример #2
0
            public byte[] ToBytes()
            {
                var len = 1 + remoteEP.BytesLength + 1 + 1 + additionalString.BytesLength(Encoding);
                var buf = new byte[len];
                var c   = 0;

                buf[c++] = 0;
                remoteEP.ToBytes(buf, ref c);
                buf[c++] = status;
                byte sum = 233;

                for (int i = 0; i < c; i++)
                {
                    sum += buf[i];
                }
                buf[c++] = sum;
                additionalString.ToBytes(Encoding, buf, ref c);
                return(buf);
            }