public void Add(PacketFromServer m) { //Buffer to memory stream if (m.PacketBuffer == null) m.Prepare(); Packet.WriteVarInt(w, m.PacketBuffer.Length); w.Write(m.PacketBuffer, 0, m.PacketBuffer.Length); }
public void Add(PacketFromServer m) { //Buffer to memory stream if (m.PacketBuffer == null) { m.Prepare(); } Packet.WriteVarInt(w, m.PacketBuffer.Length); w.Write(m.PacketBuffer, 0, m.PacketBuffer.Length); }
protected override void SendToClientInternal(PacketFromServer packet) { try { if (packet.PacketBuffer == null) packet.Prepare(); Debug.ToClient(this, packet); if (packet is PrecompiledPacket) { lock (clientStream) clientStream.Write(packet.PacketBuffer, 0, packet.PacketBuffer.Length); return; } lock (clientStream) { if(maxUncompressed >= 0) { Packet.WriteVarInt(clientStream, packet.PacketBuffer.Length + Packet.VarIntSize(packet.PacketBufferUncompressedSize)); //Uncompressed size length Packet.WriteVarInt(clientStream, packet.PacketBufferUncompressedSize); //Uncompressed size if compressed } else Packet.WriteVarInt(clientStream, packet.PacketBuffer.Length); clientStream.Write(packet.PacketBuffer, 0, packet.PacketBuffer.Length); #if DEBUG clientStream.Flush(); #endif } } catch (SocketException se) { Phase = Phases.FinalClose; Close(se.Message); } catch (IOException ioe) { Phase = Phases.FinalClose; Close(ioe.Message); } catch (ObjectDisposedException) { Phase = Phases.FinalClose; } }