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);
                        }
                    }
                }
            }
Пример #2
0
        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);
                }
            }
        }