{
AbstractPacket packet = (AbstractPacket)pipeline.removeFirst();
// We need to serialize the packet in a side buffer in order to
// know its final size before writing it to the actual output stream
RawDataBuffer buffer = outChannel.ioBuffer;
buffer.clear();
PacketSerializer.serializeTo(packet, buffer);
// Write it on the stream
OutputStream out = outChannel.socketOutputStream;
SerializationTools.writeInt(buffer.size(),out); // Packet size
buffer.writeTo(out); // Packet body
}
// Flush output stream
outChannel.flush();