internal bool SendFragmentBytes(byte[] bytes, int bytesToSend)
{
const int fragmentHeaderSize = 32;
int pos = 0;
while (bytesToSend > 0)
{
int diff = Math.Min(bytesToSend, m_MaxPacketSize - fragmentHeaderSize);
byte[] buffer = new byte[diff];
Array.Copy(bytes, pos, buffer, 0, diff);
s_FragmentWriter.StartMessage(MsgType.Fragment);
s_FragmentWriter.Write((byte)0);
s_FragmentWriter.WriteBytesFull(buffer);
s_FragmentWriter.FinishMessage();
SendWriter(s_FragmentWriter);
pos += diff;
bytesToSend -= diff;
}
// send finish
s_FragmentWriter.StartMessage(MsgType.Fragment);
s_FragmentWriter.Write((byte)1);
s_FragmentWriter.FinishMessage();
SendWriter(s_FragmentWriter);
return(true);
}