public static void WriteDouble(Stream stream, double val) { lock (_doubleBuffer) { int tmpIndex = 0; BitConverterNoAlloc.Include(val, _doubleBuffer, ref tmpIndex); stream.Write(_doubleBuffer, 0, 8); } }
public static void WriteFloat(Stream stream, float val) { lock (_floatBuffer) { int tmpIndex = 0; BitConverterNoAlloc.Include(val, _floatBuffer, ref tmpIndex); stream.Write(_floatBuffer, 0, 4); } }
public ArraySegment <byte> AddPacketHead(byte[] data, int offset, int length) { if (data == null) { throw new ArgumentNullException("data"); } //获取包长作为包头 lock (_addHeaderStream) { _addHeaderStream.Position = 0; _addHeaderStream.SetLength(0); lock (headBytesForSend) { int tmpIndex = 0; BitConverterNoAlloc.Include(length, headBytesForSend, ref tmpIndex); _addHeaderStream.Write(headBytesForSend, 0, headBytesForSend.Length); } _addHeaderStream.Write(data, offset, length); ArraySegment <byte> ret; this._addHeaderStream.TryGetBuffer(out ret); return(ret); } }