public void Begin(HvNetworkIO.Command comType, Action <BinaryWriter> func) { _memStream.Seek(0, SeekOrigin.Begin); // ストリームのポインタを最初に戻す _stream.Write((int)comType); _stream.Write((int)0); var headerSize = _memStream.Position; func(_stream); var pos = _memStream.Position; _memStream.Seek(sizeof(int), SeekOrigin.Begin); _stream.Write((int)(pos - headerSize)); _memStream.Position = pos; }
// 開始 public bool Begin(HvNetworkIO.Command comType, Action <BinaryWriter> func) { // lock (_senderSync) { if (!this.CheckWriter()) { return(false); } var buff = this.GetFreeBuffer(); buff.Begin(comType, func); this.BeginWrite(buff); return(true); } }
// public bool Begin(HvNetworkIO.Command comType, IntPtr p, int dataSize) { lock (_senderSync) { if (!this.CheckWriter()) { return(false); } var buff = this.GetFreeBuffer(); buff.Begin(comType, dataSize); this.BeginWrite(buff); if (dataSize == 0) { return(true); } this.Write(p, dataSize); return(true); } }
// サイズのみ書き込み public void Begin(HvNetworkIO.Command comType, int size) { _memStream.Seek(0, SeekOrigin.Begin); // ストリームのポインタを最初に戻す _stream.Write((int)comType); _stream.Write(size); }