internal SSPError SendUdpMessage(IMessage message, UdpPAcketId packetId) { lock (UdpHandle) { PayloadWriter pw = new PayloadWriter(); pw.WriteDecimal(this.ClientId); pw.WriteByte((byte)packetId); pw.WriteUInteger(Connection.messageHandler.GetMessageId(message.GetType())); message.WritePacket(message, ref pw); this.UdpHandle.SendTo(pw.GetBuffer(), 0, pw.Length, SocketFlags.None, this.UdpEndPoint); return(SSPError.ErrorSuccess); } }
private static void SaveMaskTable(ref List <double> Digits, ref DataShuffler dataShuffler, int ByteIndex, ref Stream OutStream) { if (Digits.Count == 0) { return; } Console.WriteLine("Digits:" + Digits.Count); PayloadWriter pw = new PayloadWriter(); double[] Shuffled = dataShuffler.Shuffle <double>(Digits.ToArray(), 1, (double progress, TimeSpan TimeLeft, int speed) => { if ((int)progress % 5 == 0.0F) { Console.WriteLine("Shuffle progress:" + progress + ", Speed: " + speed + ", Time Left: " + TimeLeft.Hours.ToString("D2") + ":" + TimeLeft.Minutes.ToString("D2") + ":" + TimeLeft.Seconds.ToString("D2")); } }); for (int k = 0; k < Shuffled.Length; k++) { int Target = (int)Shuffled[k]; pw.WriteByte((byte)ByteIndex); //byte length if (ByteIndex >= 1 || ByteIndex <= 3) //play it safe { pw.WriteUInteger((uint)Target); } else { pw.WriteDecimal(Target); } if (pw.Length >= 65535) { OutStream.Write(pw.GetBuffer(), 0, pw.Length); OutStream.Flush(); pw = new PayloadWriter(); } } if (pw.Length > 0) { OutStream.Write(pw.GetBuffer(), 0, pw.Length); OutStream.Flush(); } pw.Dispose(); Digits.Clear(); }