public virtual void Read(NetworkPacket packet, NetworkFormat format) { if (format.Secured) { Encryption.Transform(packet); if (format.Command == 0x39 || format.Command == 0x3A) { TransFormDialog(packet); Reader.Position = 6; } else { Reader.Position = 0; } } else { Reader.Position = -1; } if (ServerContext.Config?.LogRecvPackets ?? false) { Console.WriteLine("r: {0}", packet); } Reader.Packet = packet; format.Serialize(Reader); }
public virtual void Read(NetworkPacket packet, NetworkFormat format) { _lock.TryEnterReadLock(Timeout.Infinite); { if (format.Secured) { Encryption.Transform(packet); switch (format.Command) { case 0x39: case 0x3A: TransFormDialog(packet); Reader.Position = 6; break; default: Reader.Position = 0; break; } } else { Reader.Position = -1; } Reader.Packet = packet; format.Serialize(Reader); } _lock.ExitReadLock(); }
public void Read(NetworkPacket packet, NetworkFormat format) { if (packet == null) { return; } if (format.Secured) { Encryption.Transform(packet); switch (format.Command) { case 0x39: case 0x3A: TransFormDialog(packet); Reader.Position = 6; break; default: Reader.Position = 0; break; } } else { Reader.Position = -1; } Reader.Packet = packet; format.Serialize(Reader); Reader.Position = -1; }
public void Read(NetworkPacket packet, NetworkFormat format) { if (packet == null) { return; } lock (Reader) { if (format.Secured) { Encryption.Transform(packet); if (format.Command == 0x39 || format.Command == 0x3A) { TransFormDialog(packet); Reader.Position = 0x6; } else { Reader.Position = 0x0; } } else { Reader.Position = -0x1; } Reader.Packet = packet; format.Serialize(Reader); Reader.Position = -0x1; } }
public void FlushAndSend(NetworkFormat format) { lock (syncLock) { Writer.Position = 0; Writer.Write(format.Command); if (format.Secured) { Writer.Write(Ordinal++); } format.Serialize(Writer); var packet = Writer.ToPacket(); if (packet == null) { return; } if (format.Secured) { Encryption.Transform(packet); } var array = packet.ToArray(); ServerSocket.Send(array, array.Length, SocketFlags.None); } }
public override void Read(NetworkPacket packet, NetworkFormat format) { if (format.Secured) { Encryption.Transform(packet); } Reader.Packet = packet; format.Serialize(Reader); }
private void PreparePacketWriter(NetworkFormat format) { Writer.Position = 0; Writer.Write(format.Command); if (format.Secured) { Writer.Write(Ordinal++); } format.Serialize(Writer); }
private bool GetPacket(NetworkFormat format) { Writer.Position = 0; Writer.Write(format.Command); if (format.Secured) { Writer.Write(Ordinal++); } format.Serialize(Writer); return(true); }
private NetworkPacket GetPacket(NetworkFormat format) { lock (Writer) { Writer.Position = 0; Writer.Write(format.Command); if (format.Secured) { Writer.Write(Ordinal++); } format.Serialize(Writer); return(Writer.ToPacket()); } }
public void FlushAndSend(NetworkFormat format) { if (Session.ConnectedSocket == null) { return; } if (!Session.ConnectedSocket.Connected) { return; } lock (Writer) { Writer.Position = 0; Writer.Write(format.Command); if (format.Secured) { Writer.Write(Ordinal++); } format.Serialize(Writer); var packet = Writer.ToPacket(); if (packet == null) { return; } if (format.Secured) { Encryption.Transform(packet); } var array = packet.ToArray(); if (Session.ConnectedSocket.Connected) { Session.ConnectedSocket.Send(array, SocketFlags.None); } } }
public NetworkClient <TClient> Send(NetworkFormat format) { if (this is LoginClient) { FlushAndSend(format); return(this); } lock (syncLock) { Writer.Position = 0; Writer.Write(format.Command); if (format.Secured) { Writer.Write(Ordinal++); } format.Serialize(Writer); var packet = Writer.ToPacket(); if (packet == null) { return(null); } if (format.Secured) { Encryption.Transform(packet); } var array = packet.ToArray(); SendBuffer.Enqueue(array); //FlushBuffers(); } return(this); }
public void FlushAndSend(NetworkFormat format) { if (!Socket.Connected) { return; } lock (_sendLock) { Writer.Position = 0; Writer.Write(format.Command); if (format.Secured) { Writer.Write(Ordinal++); } format.Serialize(Writer); var packet = Writer.ToPacket(); if (packet == null) { return; } if (format.Secured) { Encryption.Transform(packet); } var buffer = packet.ToArray(); if (buffer.Length <= 0) { return; } if (_sending) { return; } _sending = true; try { Socket.BeginSend( buffer, 0, buffer.Length, SocketFlags.None, SendCompleted, Socket ); } catch (SocketException) { //ignore } } }
private void SendFormat(NetworkFormat format) { if (format == null) { return; } lock (Writer) { Writer.Position = 0; Writer.Write(format.Command); if (format.Secured) { Writer.Write(Ordinal++); } format.Serialize(Writer); var packet = Writer.ToPacket(); if (_lastFormat == format.Command) { ++_matches; } else { _lastFormat = format.Command; _matches = 0; } var sendIt = _matches < (format is ServerFormat3C ? ServerContext.Config.PacketOverflowLimit : ServerContext.Config.ServerOverflowTolerate); if (ServerContext.Config.LogSentPackets) { if (this is GameClient) { Console.WriteLine("{0}: {1}", (this as GameClient)?.Aisling?.Username, packet); } } if (format.Secured) { Encryption.Transform(packet); } if (!sendIt) { return; } var buffer = packet.ToArray(); if (ServerContext.Config.SendClientPacketsAsAsync) { Socket.BeginSend(buffer, 0, buffer.Length, 0, SendCallback, Socket); return; } Socket.Send(buffer); } }