Пример #1
0
 public void Dispose()
 {
     HeaderWriter.Dispose();
     HeaderStream.Dispose();
     ContentWriter.Dispose();
     ConentStream.Dispose();
 }
Пример #2
0
        public int Recieve(int _timeout = 5000)
        {
            if (State != RunnerSocketState.Connected)
            {
                return(0);
            }

            Sender.ReceiveTimeout = _timeout;
            try
            {
                int dataRec = Sender.Receive(HeaderData, 0, 8, SocketFlags.None);
                HeaderReader.BaseStream.Seek(0, SeekOrigin.Begin);
                uint dataHeader = HeaderReader.ReadUInt32();
                int  dataSize   = HeaderReader.ReadInt32() - 8;
                if (dataRec != 8)
                {
                    Console.WriteLine("Failed to read packet header!");
                }
                else
                {
                    int num = 0;
                    if (dataHeader == RunnerNetworkPacket.PK_HEADER)
                    {
                        if (dataSize > HeaderData.Length)
                        {
                            HeaderStream.SetLength(dataSize);
                        }

                        while (num < dataSize)
                        {
                            dataRec = Sender.Receive(HeaderData, num, dataSize - num, SocketFlags.None);
                            num    += dataRec;
                            if (dataRec > 0)
                            {
                                continue;
                            }
                            break;
                        }

                        if (num > 0)
                        {
                            return(num);
                        }

                        State = RunnerSocketState.Error;
                        return(0);
                    }
                    else
                    {
                        Console.WriteLine("Wrong packet header!");
                    }
                }
            }
            catch { return(0); }

            return(0);
        }
Пример #3
0
            public void Flush(Stream outputStream)
            {
                HeaderWriter.Flush();
                HeaderStream.Position = 0;
                HeaderStream.CopyTo(outputStream);

                ContentWriter.Flush();
                ConentStream.Position = 0;
                ConentStream.CopyTo(outputStream);
            }
Пример #4
0
        /// <summary>
        /// Dispose.
        /// </summary>
        /// <param name="disposing"></param>
        internal void Dispose(bool disposing)
        {
            if (!disposed)
            {
                //Command = null;

                //Label = null;
                Sender    = null;
                QueueName = null;
                //Notify = null;
                if (HeaderStream != null)
                {
                    HeaderStream.Dispose();
                    HeaderStream = null;
                }
                if (m_stream != null)
                {
                    m_stream.Dispose();
                    m_stream = null;
                }
            }
            disposed = true;
        }
Пример #5
0
 public void Dispose()
 {
     HeaderStream?.Dispose();
     ContentStream?.Dispose();
 }
Пример #6
0
 public override void EndWriter()
 {
     HeaderStream.Close();
     SourceStream.Close();
 }