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

怎么查网址是不是诈骗网站谷歌google官方网站

怎么查网址是不是诈骗网站,谷歌google官方网站,wordpress虚拟阅读量,做网站副业写在前面 在进一步了解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.yidumall.com/news/46172.html

相关文章:

  • 领先的手机网站设计专业网店推广
  • 泊头做网站crm
  • 门户网站都有哪些360外链
  • 做旅游网站公众号关键词排名优化
  • 柳州做网站设计的公司网络营销的5种营销方式
  • 网站设计交流电商培训机构需要什么资质
  • 北京网站建设+++招聘信息如何推广app让别人注册
  • 鞍山做网站哪家好营销目标分为三个方面
  • 怎么选择大连网站建设ciliba磁力猫
  • 搭建网站兼职seo推广论坛
  • 网站ui界面设计模板网络推广软文怎么写
  • 厦门免费网站建设南宁seo产品优化服务
  • 整形医院网站制作seo快速排名软件网站
  • 软件测试好找工作吗深圳网站建设专业乐云seo
  • 有哪些基于网站开发的报表设计器百度企业官网
  • 盛唐网站建设网站优化排名查询
  • 办公空间设计装修公司东莞seo优化
  • 网站定位策划书百度推广查询
  • 网站做阿拉伯语的站长之家怎么用
  • 网站logo尺寸一般多大百度指数的使用方法
  • 台州网站建设方案seo搜索引擎招聘
  • 做导购网站如何获利网站免费软件
  • 哈尔滨自助建站系统设计本网站
  • 网站二维码链接怎么做的推广软文案例
  • 创新建设资金网站合肥seo按天收费
  • 哪个网站可以做全景图速推网
  • 服装网站的建设发布软文广告
  • 免费推广企业网站郑州做网站公司排名
  • 永康做网站的正规代运营公司排名
  • 网站内部优化怎么做青岛网站seo