public bool WriteFrame(WsFrame frame) { return(write(frame.ToByteArray())); }
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()); }
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); }