/// <summary> /// Execute user command /// </summary> /// <param name="command">name of action</param> /// <param name="args">command arguments</param> /// <param name="server"></param> /// <param name="selectedClient"></param> private void ExecuteCommand(string command, string[] args, EasyTcpServer server, ref EasyTcpClient selectedClient) { if (command == "s" || command == "select") { selectedClient = SelectClient(new List <EasyTcpClient>(server.GetConnectedClients())); } else { selectedClient?.SendAction(command, args.Any() ? Encoding.UTF8.GetBytes(string.Join(':', args)) : null, true); } }
/// <summary> /// Send action (object) to remote host /// </summary> /// <param name="client"></param> /// <param name="action">action code</param> /// <param name="data">data to send to remote host</param> /// <param name="compression">compress data using GZIP if set to true</param> public static void SendAction(this EasyTcpClient client, int action, object data, bool compression = false) => client.SendAction(action, client?.Serialize(data), compression);
/// <summary> /// Send action (IEasyTcpPacket) to remote host /// </summary> /// <param name="client"></param> /// <param name="action">action code</param> /// <param name="data">data to send to remote host</param> /// <param name="compression">compress data using GZIP if set to true</param> public static void SendAction(this EasyTcpClient client, int action, IEasyTcpPacket data, bool compression = false) => client.SendAction(action, data.Data, compression);
/// <summary> /// Send action (IEasyTcpPacket) to remote host /// </summary> /// <param name="client"></param> /// <param name="action">action code as string</param> /// <param name="data">data to send to remote host</param> /// <param name="compression">compress data using GZIP if set to true</param> public static void SendAction(this EasyTcpClient client, string action, IEasyTcpPacket data, bool compression = false) => client.SendAction(action.ToActionCode(), data.Data, compression);
/// <summary> /// Send action (string) to remote host /// </summary> /// <param name="client"></param> /// <param name="action">action code as string</param> /// <param name="data">data to send to remote host</param> /// <param name="encoding">encoding type (Default: UTF8)</param> /// <param name="compression">compress data using GZIP if set to true</param> public static void SendAction(this EasyTcpClient client, string action, string data, Encoding encoding = null, bool compression = false) => client.SendAction(action.ToActionCode(), (encoding ?? Encoding.UTF8).GetBytes(data), compression);
/// <summary> /// Send action (bool) to remote host /// </summary> /// <param name="client"></param> /// <param name="action">action code as string</param> /// <param name="data">data to send to remote host</param> public static void SendAction(this EasyTcpClient client, string action, bool data) => client.SendAction(action.ToActionCode(), BitConverter.GetBytes(data));
/// <summary> /// Send action (bool) to remote host /// </summary> /// <param name="client"></param> /// <param name="action">action code</param> /// <param name="data">data to send to remote host</param> public static void SendAction(this EasyTcpClient client, int action, bool data) => client.SendAction(action, BitConverter.GetBytes(data));
/// <summary> /// Send action with data (custom class) to the remote host /// </summary> /// <param name="client"></param> /// <param name="action">action code as string</param> /// <param name="o">custom class</param> public static void SendAction(this EasyTcpClient client, string action, object o, bool compression = false) => client.SendAction(action.ToActionCode(), o, compression);
/// <summary> /// Send action to remote host /// </summary> /// <param name="client"></param> /// <param name="action">action code as string</param> /// <param name="data">data to send to remote host</param> /// <param name="compression">compress data using deflate if set to true</param> public static void SendAction(this EasyTcpClient client, string action, byte[] data = null, bool compression = false) => client.SendAction(action.ToActionCode(), data, compression);