public void OnRecieve(HostRecieveEventArgs e) { // 此demo进行了一次简单的定长数据获取示例 ClientHostRecieveEventArgs args = (ClientHostRecieveEventArgs)e; if (args.Client.DataMode) { // 数据模式 args.ResultData = _sign + e.Content; args.Result = HostEventResults.Finished; } else { // 命令模式 // 此处以+开头定义成功的数据 // 此处以-开头定义失败的数据 if (e.Content.StartsWith("+") || e.Content.StartsWith("-")) { _sign = e.Content.Substring(0, 1); // 获取内容长度 int len = int.Parse(e.Content.Substring(1)); // 当长度为0时直接返回,否则设置数据模式 if (len <= 0) { args.ResultData = _sign; args.Result = HostEventResults.Finished; } else { args.Client.SetDataMode(len); } } } }
public void OnRecieve(HostRecieveEventArgs e) { // 此demo进行了一次简单的定长数据获取示例 if (_data) { // 数据模式 // 输出内容 Console.WriteLine($"-> 接受数据 -> {e.Content}"); // 测试协议,原封内容发回客户端 ClientHostRecieveEventArgs args = (ClientHostRecieveEventArgs)e; args.ResultData = e.Content; args.Result = HostEventResults.Finished; } else { //命令模式 // 输出内容 Console.WriteLine($"-> 接受定义命令 -> {e.Content}"); //此处以$开头定义数据长度 if (e.Content.StartsWith("$")) { _data = true; int len = int.Parse(e.Content.Substring(1)); // 输出内容 Console.WriteLine($"-> 定义数据长度:{len}"); ClientHostRecieveEventArgs args = (ClientHostRecieveEventArgs)e; args.Client.SetDataMode(len); } } }