/// <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 }); } } }; }
public bool ReadULong(out ulong val) { bool error; val = TCPReaderWriter.ReadULong(this, false, out error); return(error); }
public bool ReadUInt(out uint val) { bool error; val = TCPReaderWriter.ReadUInt(this, false, out error); return(error); }
public bool ReadDouble(out double val) { bool error; val = TCPReaderWriter.ReadDouble(this, false, out error); return(error); }
public bool ReadFloat(out float val) { bool error; val = TCPReaderWriter.ReadFloat(this, false, out error); return(error); }
public bool ReadObject <T>(out T ob) where T : new() { bool error; ob = TCPReaderWriter.ReadObject <T>(this, false, out error); return(error); }
public bool ReadString(uint len, out string val) { bool error; val = TCPReaderWriter.ReadString(this, len, false, out error); return(error); }
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()); } } }; }
public void WriteString(string text, bool prependLength = true) => TCPReaderWriter.WriteString(this, text, prependLength, false);
public void WriteShort(short number) => TCPReaderWriter.WriteNumber(this, number, false);
public void WriteULong(ulong number) => TCPReaderWriter.WriteNumber(this, number, false);
public void WriteUInt(uint number) => TCPReaderWriter.WriteNumber(this, number, false);
public void WriteDouble(double number) => TCPReaderWriter.WriteNumber(this, number, false);
public void WriteFloat(float number) => TCPReaderWriter.WriteNumber(this, number, false);
public void WriteObject <T>(T ob) where T : new() => TCPReaderWriter.WriteObject <T>(this, ob, false);