private Stream ProcessStream(Stream stream, bool keepAlive)
{
// read header
var reader = new BinaryReader(stream);
var headerMetaPacket = reader.ReadBytes(5);
var headerPacket = reader.ReadBytes(headerMetaPacket[0]); // ~35 bytes
if (keepAlive)
{
_keepaliveThread = new Thread(SendThread);
_keepaliveThread.IsBackground = true;
_keepaliveThread.Start(stream);
}
return stream;
}