当前位置: 首页 > news >正文

怎么查网址是不是诈骗网站最近几天的重大新闻事件

怎么查网址是不是诈骗网站,最近几天的重大新闻事件,网站群建设意义,软件培训公司排名写在前面 在进一步了解Socket粘包分包的过程中,了解到了.NET 中的 System.IO.Pipelines,可以更优雅高效的解决这个问题;先跟随官方的示例做个初步的认识。 System.IO.Pipelines 是一个库,旨在使在 .NET 中执行高性能 I/O 更加容…

写在前面

在进一步了解Socket粘包分包的过程中,了解到了.NET 中的 System.IO.Pipelines,可以更优雅高效的解决这个问题;先跟随官方的示例做个初步的认识。

System.IO.Pipelines 是一个库,旨在使在 .NET 中执行高性能 I/O 更加容易。 该库的目标为适用于所有 .NET 实现的 .NET Standard。
System.IO.Pipelines 具有高性能的流数据分析功能,可以减少代码复杂性。

老规矩通过NuGet安装该类库

代码实现

using System.Buffers;
using System.IO.Pipelines;
using System.Text;class Program
{static async Task Main(){using var stream = File.OpenRead("lorem-ipsum.txt");var reader = PipeReader.Create(stream);var writer = PipeWriter.Create(Console.OpenStandardOutput(),new StreamPipeWriterOptions(leaveOpen: true));WriteUserCancellationPrompt();var processMessagesTask = ProcessMessagesAsync(reader, writer);var userCanceled = false;var cancelProcessingTask = Task.Run(() =>{while (char.ToUpperInvariant(Console.ReadKey().KeyChar) != 'C'){WriteUserCancellationPrompt();}userCanceled = true;// No exceptions thrownreader.CancelPendingRead();writer.CancelPendingFlush();});await Task.WhenAny(cancelProcessingTask, processMessagesTask);Console.WriteLine($"\n\nProcessing {(userCanceled ? "cancelled" : "completed")}.\n");}static void WriteUserCancellationPrompt() =>Console.WriteLine("Press 'C' to cancel processing...\n");static async Task ProcessMessagesAsync(PipeReader reader,PipeWriter writer){try{while (true){ReadResult readResult = await reader.ReadAsync();ReadOnlySequence<byte> buffer = readResult.Buffer;try{if (readResult.IsCanceled){break;}if (TryParseLines(ref buffer, out string message)){FlushResult flushResult =await WriteMessagesAsync(writer, message);if (flushResult.IsCanceled || flushResult.IsCompleted){break;}}if (readResult.IsCompleted){if (!buffer.IsEmpty){throw new InvalidDataException("Incomplete message.");}break;}}finally{reader.AdvanceTo(buffer.Start, buffer.End);}}}catch (Exception ex){Console.Error.WriteLine(ex);}finally{await reader.CompleteAsync();await writer.CompleteAsync();}}static bool TryParseLines(ref ReadOnlySequence<byte> buffer,out string message){SequencePosition? position;StringBuilder outputMessage = new();while (true){position = buffer.PositionOf((byte)'\n');if (!position.HasValue)break;outputMessage.Append(Encoding.ASCII.GetString(buffer.Slice(buffer.Start, position.Value))).AppendLine();buffer = buffer.Slice(buffer.GetPosition(1, position.Value));};message = outputMessage.ToString();return message.Length != 0;}static ValueTask<FlushResult> WriteMessagesAsync(PipeWriter writer,string message) =>writer.WriteAsync(Encoding.ASCII.GetBytes(message));
}

调用示例

总结

例子中用到的文本文件是一个以\n 换行符作为结尾的多行文本,微软官方示例没有提供,这个是自己建的测试文件,如果没有检测到\n会抛出异常。

 从运行的结果可以看到,从传入的流中识别以\n结尾,作为数据块的区分,利用这个特性定义数据报文的尾部,实现分包。

http://www.15wanjia.com/news/16362.html

相关文章:

  • 学校网站注重服务平台建设东莞搜索排名提升
  • 高端的食品行业网站开发百度代做seo排名
  • 两学一做夜校网站百度推广登录入口下载
  • 网站制作公司-山而推广引流方法与渠道
  • 小程序怎么做电影网站销售营销方案100例
  • 深圳做棋牌网站建设哪家公司收费合理app营销策划方案
  • 开发公司和施工单位电费的处理郑州关键词seo
  • 网站开发 app新产品推广方案范文
  • 沧州地区阿里巴巴做网站企业建站系统
  • 当前最新域名企业网站seo贵不贵
  • 做网站需要会哪些编程语言站长统计ios
  • 茂名网站设计湖南产品网络推广业务
  • wordpress站群怎么优化自己开网站怎么开
  • 网站建设销售话术培训总结精辟句子
  • 爱站seo排名可以做哪些网站江门seo网站推广
  • 广东省做网站推广公司新余seo
  • 烟台做网站建设电话河南公司网站建设
  • 互联网网站项目方案书网站网上推广
  • 阿坝网站制作市场营销方案怎么做
  • 微信登录wordpress免费公司seo排名优化
  • 做贸易常用的网站cilimao磁力猫搜索引擎
  • 子网站建设经验汇报中国域名注册官网
  • 网上做兼职网站优质网站
  • 江苏省建设厅八大员考试报名网站链接是什么意思
  • 怎么样让网站做的大气网络媒体软文案例
  • 千万别学服装设计百度seo排名推广
  • 做网站公司推广普通话手抄报
  • 怎么打帮人做网站开发的广告搜索引擎推广的方法有哪些
  • 中国顶级网站建设营销型网站建设的价格
  • 新手做网站什么内容比较好小程序平台