Exemplo n.º 1
0
 public bool WriteFrame(WsFrame frame)
 {
     return(write(frame.ToByteArray()));
 }
Exemplo n.º 2
0
        private static string dump(WsFrame frame)
        {
            ulong  length = frame.Length;
            long   num    = (long)(length / 4UL);
            int    num2   = (int)(length % 4UL);
            string countFmt;
            int    num3;

            if (num < 10000L)
            {
                num3     = 4;
                countFmt = "{0,4}";
            }
            else if (num < 65536L)
            {
                num3     = 4;
                countFmt = "{0,4:X}";
            }
            else if (num < 4294967296L)
            {
                num3     = 8;
                countFmt = "{0,8:X}";
            }
            else
            {
                num3     = 16;
                countFmt = "{0,16:X}";
            }
            string        arg     = string.Format("{{0,{0}}}", num3);
            string        format  = string.Format("{0} 01234567 89ABCDEF 01234567 89ABCDEF\n{0}+--------+--------+--------+--------+\\n", arg);
            string        format2 = string.Format("{0}+--------+--------+--------+--------+", arg);
            StringBuilder buffer  = new StringBuilder(64);
            Func <Action <string, string, string, string> > func = delegate()
            {
                long   lineCount = 0L;
                string lineFmt   = string.Format("{0}|{{1,8}} {{2,8}} {{3,8}} {{4,8}}|\n", countFmt);
                return(delegate(string arg1, string arg2, string arg3, string arg4)
                {
                    buffer.AppendFormat(lineFmt, new object[]
                    {
                        lineCount += 1L,
                        arg1,
                        arg2,
                        arg3,
                        arg4
                    });
                });
            };
            Action <string, string, string, string> action = func();

            buffer.AppendFormat(format, string.Empty);
            byte[] array = frame.ToByteArray();
            int    num4  = 0;

            while ((long)num4 <= num)
            {
                int num5 = num4 * 4;
                if ((long)num4 < num)
                {
                    action(Convert.ToString(array[num5], 2).PadLeft(8, '0'), Convert.ToString(array[num5 + 1], 2).PadLeft(8, '0'), Convert.ToString(array[num5 + 2], 2).PadLeft(8, '0'), Convert.ToString(array[num5 + 3], 2).PadLeft(8, '0'));
                }
                else if (num2 > 0)
                {
                    action(Convert.ToString(array[num5], 2).PadLeft(8, '0'), (num2 < 2) ? string.Empty : Convert.ToString(array[num5 + 1], 2).PadLeft(8, '0'), (num2 != 3) ? string.Empty : Convert.ToString(array[num5 + 2], 2).PadLeft(8, '0'), string.Empty);
                }
                num4++;
            }
            buffer.AppendFormat(format2, string.Empty);
            return(buffer.ToString());
        }
Exemplo n.º 3
0
        private static void dump(WsFrame frame)
        {
            var len       = frame.Length;
            var count     = (long)(len / 4);
            var remainder = (int)(len % 4);

            int    countDigit;
            string countFmt;

            if (count < 10000)
            {
                countDigit = 4;
                countFmt   = "{0,4}";
            }
            else if (count < 0x010000)
            {
                countDigit = 4;
                countFmt   = "{0,4:X}";
            }
            else if (count < 0x0100000000)
            {
                countDigit = 8;
                countFmt   = "{0,8:X}";
            }
            else
            {
                countDigit = 16;
                countFmt   = "{0,16:X}";
            }

            var spFmt     = String.Format("{{0,{0}}}", countDigit);
            var headerFmt = String.Format(@"
 {0} 01234567 89ABCDEF 01234567 89ABCDEF
 {0}+--------+--------+--------+--------+", spFmt);
            var footerFmt = String.Format(" {0}+--------+--------+--------+--------+", spFmt);

            Func <Action <string, string, string, string> > linePrinter = () =>
            {
                long lineCount = 0;
                var  lineFmt   = String.Format(" {0}|{{1,8}} {{2,8}} {{3,8}} {{4,8}}|", countFmt);
                return((arg1, arg2, arg3, arg4) =>
                {
                    Console.WriteLine(lineFmt, ++lineCount, arg1, arg2, arg3, arg4);
                });
            };
            var printLine = linePrinter();

            Console.WriteLine(headerFmt, String.Empty);

            var buffer = frame.ToByteArray();
            int i, j;

            for (i = 0; i <= count; i++)
            {
                j = i * 4;
                if (i < count)
                {
                    printLine(
                        Convert.ToString(buffer[j], 2).PadLeft(8, '0'),
                        Convert.ToString(buffer[j + 1], 2).PadLeft(8, '0'),
                        Convert.ToString(buffer[j + 2], 2).PadLeft(8, '0'),
                        Convert.ToString(buffer[j + 3], 2).PadLeft(8, '0'));
                }
                else if (remainder > 0)
                {
                    printLine(
                        Convert.ToString(buffer[j], 2).PadLeft(8, '0'),
                        remainder >= 2 ? Convert.ToString(buffer[j + 1], 2).PadLeft(8, '0') : String.Empty,
                        remainder == 3 ? Convert.ToString(buffer[j + 2], 2).PadLeft(8, '0') : String.Empty,
                        String.Empty);
                }
            }

            Console.WriteLine(footerFmt, String.Empty);
        }