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);
     }
 }
Example #3
0
 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);
     }
 }