/// <summary>
        /// Initialize sockets for file stream
        /// </summary>
        private void InitSockets()
        {
            FileTransfer = new TCPClient(AddressString, TransferPort, SSL, Logging);

            FileTransfer.OnMessage += (message) => {
                using (MemoryStream ms = new MemoryStream(message.Content)) {
                    long id    = TCPReaderWriter.ReadLong(ms, false);
                    long index = TCPReaderWriter.ReadLong(ms, false);

                    byte[] data = TCPReaderWriter.Read(ms, (uint)message.Content.Length - 16);

                    TCPFileProgress progress = Incoming.Peek();

                    if (progress.TransferData.ID == id)
                    {
                        progress.Cache.AddData(new TCPFileTile()
                        {
                            ID    = id,
                            Data  = data,
                            Index = index
                        });
                    }
                }
            };
        }
Пример #2
0
        public bool ReadULong(out ulong val)
        {
            bool error;

            val = TCPReaderWriter.ReadULong(this, false, out error);

            return(error);
        }
Пример #3
0
        public bool ReadUInt(out uint val)
        {
            bool error;

            val = TCPReaderWriter.ReadUInt(this, false, out error);

            return(error);
        }
Пример #4
0
        public bool ReadDouble(out double val)
        {
            bool error;

            val = TCPReaderWriter.ReadDouble(this, false, out error);

            return(error);
        }
Пример #5
0
        public bool ReadFloat(out float val)
        {
            bool error;

            val = TCPReaderWriter.ReadFloat(this, false, out error);

            return(error);
        }
Пример #6
0
        public bool ReadObject <T>(out T ob) where T : new()
        {
            bool error;

            ob = TCPReaderWriter.ReadObject <T>(this, false, out error);

            return(error);
        }
Пример #7
0
        public bool ReadString(uint len, out string val)
        {
            bool error;

            val = TCPReaderWriter.ReadString(this, len, false, out error);

            return(error);
        }
Пример #8
0
        public bool ReadShort(out short val)
        {
            bool error;

            val = TCPReaderWriter.ReadShort(this, false, out error);

            return(error);
        }
        /// <summary>
        /// Initializes the events
        /// </summary>
        private void InitEvents()
        {
            OnMessage += (message) => {
                TCPFileCode code = (TCPFileCode)message.Content[0];
                string      json = Encoding.UTF8.GetString(message.Content.Skip(1).ToArray());

                if (code == TCPFileCode.Enqueue)
                {
                    TCPFileTransferData data = JsonConvert.DeserializeObject <TCPFileTransferData>(json);

                    Incoming.Enqueue(new TCPFileProgress()
                    {
                        Cache        = new TCPFileCache(data.FullFileName),
                        TransferData = data
                    });

                    using (MemoryStream ms = new MemoryStream()) {
                        TCPReaderWriter.WriteNumber(ms, data.ID, false);
                        Send(TCPFileCode.Reply, ms.ToArray());
                    }
                }
            };
        }
Пример #10
0
 public void WriteString(string text, bool prependLength = true) => TCPReaderWriter.WriteString(this, text, prependLength, false);
Пример #11
0
 public void WriteShort(short number) => TCPReaderWriter.WriteNumber(this, number, false);
Пример #12
0
 public void WriteULong(ulong number) => TCPReaderWriter.WriteNumber(this, number, false);
Пример #13
0
 public void WriteUInt(uint number) => TCPReaderWriter.WriteNumber(this, number, false);
Пример #14
0
 public void WriteDouble(double number) => TCPReaderWriter.WriteNumber(this, number, false);
Пример #15
0
 public void WriteFloat(float number) => TCPReaderWriter.WriteNumber(this, number, false);
Пример #16
0
 public void WriteObject <T>(T ob) where T : new() => TCPReaderWriter.WriteObject <T>(this, ob, false);