网络数据是大端模式,而c#中的数据小端结构,那么在读写网络数据的时候需要进行转换。c#类库IPAddress已经封装了大小端的转换。
封装代码如下:
using System.IO;
using System.Net;
using System;
namespace Framework
{
public class NetStream
{
private MemoryStream stream;
private BinaryReader reader;
private BinaryWriter writer;
public NetStream(byte[] buffer = null)
{
if (buffer == null)
{
this.stream = new MemoryStream();
}
else
{
this.stream = new MemoryStream(buffer);
}
this.reader = new BinaryReader(this.stream);
this.writer = new BinaryWriter(this.stream);
}
public void Close()
{
this.stream.Close();
this.reader.Close();
this.writer.Close();
}
public long ReadInt64()
{
return IPAddress.HostToNetworkOrder(this.reader.ReadInt64());
}
public int ReadInt32()
{
return IPAddress.HostToNetworkOrder(this.reader.ReadInt32());
}
public int ReadInt16(