FloatingQueue.Common.TCP.TCPBinaryWriter.Finish C# (CSharp) Method

Finish() public method

public Finish ( byte &data ) : int
data byte
return int
        public int Finish(out byte[] data)
        {
            EnsureWriteAllowed();
            m_Writer.Flush();
            m_Writer.Seek(4, SeekOrigin.Begin);
            m_Writer.Write(m_Size);
            m_Writer.Close();
            m_Writer = null;
            //
            data = m_Stream.GetBuffer();
            return m_Size;
        }

Usage Example

Exemplo n.º 1
0
 protected TCPBinaryReader SendReceive(TCPBinaryWriter request)
 {
     lock (m_Lock)
     {
         OpenIfClosed();
         //
         byte[] data;
         var dataSize = request.Finish(out data);
         var stream = m_TcpClient.GetStream();
         stream.Write(data, 0, dataSize);
         stream.Flush();
         //
         var recvData = new TCPBinaryReader(TCPCommunicationSignature.Response, ReadBuffer);
         if (!recvData.IsComplete)
             throw new IOException("Incomplete response received");
         if (recvData.Command == TCPCommunicationSignature.CmdException)
         {
             throw HandleErrorResponse(recvData);
         }
         if (recvData.Command != request.Command && recvData.Command != TCPCommunicationSignature.CmdException)
             throw new InvalidProtocolException("Invalid response command");
         return recvData;
     }
 }
All Usage Examples Of FloatingQueue.Common.TCP.TCPBinaryWriter::Finish