Files
2023-01-01 12:50:59 +02:00

60 lines
1.4 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace STUN
{
public class STUNBinaryReader : BinaryReader
{
public STUNBinaryReader(Stream stream) : base(stream)
{
}
public override short ReadInt16()
{
return BitConverter.ToInt16(ReadNetworkBytes(sizeof(short)), 0);
}
public override ushort ReadUInt16()
{
return BitConverter.ToUInt16(ReadNetworkBytes(sizeof(ushort)), 0);
}
public override int ReadInt32()
{
return BitConverter.ToInt32(ReadNetworkBytes(sizeof(int)), 0);
}
public override uint ReadUInt32()
{
return BitConverter.ToUInt32(ReadNetworkBytes(sizeof(uint)), 0);
}
public override long ReadInt64()
{
return BitConverter.ToInt64(ReadNetworkBytes(sizeof(long)), 0);
}
public override ulong ReadUInt64()
{
return BitConverter.ToUInt64(ReadNetworkBytes(sizeof(ulong)), 0);
}
public byte[] ReadNetworkBytes(int count)
{
var bytes = base.ReadBytes(count);
if (BitConverter.IsLittleEndian)
{
Array.Reverse(bytes);
}
return bytes;
}
}
}