public IpcCallback <T> Send(T data) { var request = new IpcEntity <T>(data, Guid.NewGuid(), _client.PortNumber); _client.Send(request); return(new IpcCallback <T>(this, request.Header.CallbackId)); }
public override Task Send(IpcEntity <T> data) { return(Task.Factory.StartNew(() => { try { lock (_sendLock) { using (TcpClient socket = new TcpClient()) { socket.Connect(new IPEndPoint(IPAddress.Loopback, PortNumber)); string serializedData = JsonConvert.SerializeObject(data); byte[] dataToSend; if (_encryptor != null) { serializedData = _encryptor.Encrypt(serializedData); byte[] a = Convert.FromBase64String(serializedData); string size = a.Length.ToString().PadLeft(4, '0'); byte[] sizeByte = Encoding.UTF8.GetBytes(size); var z = new byte[a.Length + sizeByte.Length]; sizeByte.CopyTo(z, 0); a.CopyTo(z, sizeByte.Length); dataToSend = z; } else { string c = serializedData.Length.ToString().PadLeft(4, '0') + serializedData; dataToSend = Encoding.UTF8.GetBytes(c); } socket.Client.Send(dataToSend); socket.Close(); } } } catch (Exception ex) { Console.Error.WriteLine($"[ERROR] IpcClient Send: {ex?.ToString()}"); } })); }
public abstract Task Send(IpcEntity <T> data);
public void Send(T data, Guid callbackId) { var request = new IpcEntity <T>(data, callbackId, _client.PortNumber); _client.Send(request); }