private void SendMessage(NetworkMessage message) { var st = new CustomDataWriter(); message.PackOld(st); slave.Send(st.Data); }
public void Serialize(ICustomDataWriter writer) { var dataWriter = new CustomDataWriter(); serializeContent(dataWriter); var messageData = dataWriter.GetBytes(); ushort header = (ushort)(MessageId << 2); if (messageData.Length == 0) { writer.WriteUShort(header); return; } if (messageData.Length <= byte.MaxValue) { writer.WriteUShort((ushort)(header | 1)); writer.WriteByte((byte)messageData.Length); } else if (messageData.Length <= ushort.MaxValue) { header |= 2; writer.WriteUShort(header); writer.WriteUShort((ushort)messageData.Length); } else { return; } writer.WriteBytes(messageData); }
public void Pack(ICustomDataOutput header) { var data = new CustomDataWriter(); Serialize(data); var size = data.Data.Length; var compute = ComputeTypeLen(size); short val = (short)((MessageId << 2) | compute); header.WriteShort(val); switch (compute) { case 1: header.WriteByte((byte)size); break; case 2: header.WriteUShort((ushort)size); break; case 3: header.WriteByte((byte)((size >> 0x10) & 0xff)); header.WriteUShort((ushort)(size & 0xffff)); break; } header.WriteBytes(data.Data); data.Dispose(); }
public override void SendMessage(NetworkMessage message, DestinationEnum destination) { CustomDataWriter writer = new CustomDataWriter(); message.Pack(writer); DestinationClient.Send(writer.Data); Logg.Log("Sent to server :" + message.MessageId.ToString()); }
public virtual void Send(Message message) { SegmentStream stream = BufferManager.Default.CheckOutStream(); CustomDataWriter writer = new CustomDataWriter(stream); message.Pack(writer); this.Send(stream); this.OnMessageSent(message); }
public void SendMessage(NetworkMessage message) { CustomDataWriter writer = new CustomDataWriter(); message.Pack(writer, ++GlobalInstanceId); Connection.Send(writer.Data); Console.WriteLine(BitConverter.ToString(writer.Data)); }
public void Send(Message message) { if (Socket != null && Socket.Connected) { CustomDataWriter writer = new CustomDataWriter(); message.Pack(writer); var packet = writer.Data; this.Send(packet); if (SSyncCore.ShowProtocolMessage) { logger.DarkGray(string.Format("Send {0}", message.ToString())); } } }
public void Send(Message message) { CustomDataWriter writer = new CustomDataWriter(); message.Pack(writer); var packet = writer.Data; SSyncClient.Send(packet); if (ConfigurationManager.Instance.ShowProtocolMessages) { Logger.Info(string.Format("[Send] {0}", message.ToString())); } }
public void Send(INetworkMessage message) { var data = new CustomDataWriter(); message.Serialize(data); //var path = Path.Combine("packets", Nickname + "_" + _counter.ToString("0000") + "_" + ((NetworkMessage)message).MessageId + ".bin"); //if (!Directory.Exists(Path.GetDirectoryName(path))) // Directory.CreateDirectory(Path.GetDirectoryName(path)); //File.WriteAllBytes(path, data.GetBytes()); //_counter++; _client.Send(data.GetBytes()); Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine("[" + Nickname + "] >> " + message.GetName() + " | " + message.GetSummary()); Console.ResetColor(); }
public void Pack(ICustomDataWriter writerOut, uint globalInstanceId) { CustomDataWriter writer = new CustomDataWriter(); Serialize(writer); //write all param of the packet byte[] data = writer.Data; //get the packet in array byte typeLen; //get the size of the size if (data.Length > 65535) { typeLen = 3; } else if (data.Length > 255) { typeLen = 2; } else if (data.Length > 0) { typeLen = 1; } else { typeLen = 0; } writerOut.WriteShort((short)(MessageId << 2 | typeLen)); //write id and size of size writerOut.WriteUInt(globalInstanceId); switch (typeLen) //write the size { case 0: break; case 1: writerOut.WriteByte((byte)data.Length); break; case 2: writerOut.WriteShort((short)data.Length); break; case 3: writerOut.WriteByte((byte)(data.Length >> 16 & 255)); writerOut.WriteShort((short)(data.Length & 65535)); break; } writerOut.WriteBytes(data);//write the packet after write the header }
private static void Generate <T>(Action <ICustomDataOutput> action) { var stream = DirectoryGenerator._streams[typeof(T)]; var writer = new CustomDataWriter(stream); stream.Lock(0, long.MaxValue); try { action(writer); stream.Flush(); } finally { stream.Unlock(0, long.MaxValue); } }
private byte[] hashKey_Gen(ConnectedHost host) { try { using (CustomDataWriter writer = new CustomDataWriter()) { writer.WriteUTF(host.Bot.Login.mAutentificationFrame.mTicket); byte[] key = hash(writer.Data); return key; } } catch (Exception ex) { return null; } }
public override void SendMessage(NetworkMessage message, DestinationEnum destination) { CustomDataWriter writer = new CustomDataWriter(); message.Pack(writer); switch (destination) { case DestinationEnum.CLIENT: SourceClient.Send(writer.Data); break; case DestinationEnum.SERVER: DestinationClient.Send(writer.Data); break; } Host.logger.Log("Sent " + message.ToString().Split('.').Reverse().First() + " to " + destination.ToString(), LogLevelEnum.Succes); }
public void Pack(ICustomDataOutput header) { var data = new CustomDataWriter(); Serialize(data); var size = data.Data.Length; var compute = ComputeTypeLen(size); short val = (short)((MessageId << 2) | compute); header.WriteShort(val); switch (compute) { case 1: header.WriteByte((byte)size); //header.WriteByte(0);//... break; case 2: header.WriteUShort((ushort)size); break; case 3: header.WriteByte((byte)((size >> 0x10) & 0xff)); header.WriteUShort((ushort)(size & 0xffff)); break; } header.WriteBytes(data.Data); data.Dispose(); /*byte b = 3; * short @short = (short)Message.SubComputeStaticHeader(this.MessageId, 3); * writer.WriteShort(@short); * for (int i = 3 - 1; i >= 0; i--) * { * writer.WriteByte(0); * } * this.Serialize(writer); * long num = writer.Position - 5L; * writer.Seek(2); * for (int i = (int)(b - 1); i >= 0; i--) * { * writer.WriteByte((byte)(num >> 8 * i & 255L)); * } * writer.Seek((int)num + 5);*/ }
public void Send(Guid guid, TransitionMessage message, bool isRequest) { CustomDataWriter writer = new CustomDataWriter(); writer.WriteBoolean(isRequest); byte[] guidDatas = guid.ToByteArray(); writer.WriteInt(guidDatas.Length); writer.WriteBytes(guidDatas); message.Pack(writer); var packet = writer.Data; Send(packet); if (SSyncCore.ShowProtocolMessage) { logger.Color2(string.Format("Send {0}", message.ToString())); } }
public void Send(Message message) { if (this.m_singleClient != null) { this.m_singleClient.Send(message); } else { bool flag = false; try { System.Threading.Monitor.Enter(this, ref flag); SegmentStream stream = BufferManager.Default.CheckOutStream(); CustomDataWriter writer = new CustomDataWriter(stream); message.Pack(writer); System.Collections.Generic.List <WorldClient> list = new System.Collections.Generic.List <WorldClient>(); foreach (WorldClient current in this.m_underlyingList) { if (current != null) { current.Send(stream); current.OnMessageSent(message); } if (current == null || !current.Connected) { list.Add(current); } } foreach (WorldClient current2 in list) { this.Remove(current2); } } finally { if (flag) { System.Threading.Monitor.Exit(this); } } } }
public void Send(NetworkMessage msg) { if (!IsConnected()) { return; } var writer = new CustomDataWriter(); var pack = new MessagePacking(); pack.Pack(msg, writer); lock (Sender) { if (Debug) { Logger.Log($"Send: ({msg.MessageID}) - " + msg.ToString().Split('.').Last(), LogMessageType.Arena); } Socket.Send(writer.Data); } }
public byte[] hash_function(byte[] packet) { //object _loc5_ = null; //byte[] _loc6_ = null; if (this._hashKey == null) return packet; using (CustomDataWriter writer = new CustomDataWriter()) { writer.WriteBytes(packet); CustomDataWriter writer2 = new CustomDataWriter(); writer2.WriteBytes(this.hash(packet)); using (RijndaelManaged myRijndael = new RijndaelManaged()) { myRijndael.GenerateIV(); // Encrypt the string to an array of bytes. byte[] encrypted = EncryptStringToBytes(writer2.Data.ToString(), this._hashKey, myRijndael.IV); } writer.WriteBytes(writer2.Data); return writer.Data; } }
public CustomNetworkMessage(ushort messageId) : base(messageId) { _writer = new CustomDataWriter(); }