Asio中的许多I/O对象都是面向流的。这意味着:

  • 没有消息边界。正在传输的数据是一个连续的字节序列。
  • 读取或写入操作传输的字节数可能少于请求的字节数。这称为短读或短写。

提供面向流的 I/O 的对象模拟以下一种或多种类型要求:

  • SyncReadStream,其中同步读取操作是使用成员函数read_some()执行的 。
  • AsyncReadStream,其中异步读取操作是使用成员函数async_read_some()执行的。
  • SyncWriteStream,其中同步写入操作是使用成员函数write_some()执行的。
  • AsyncWriteStream,其中异步写入操作是使用成员函数async_write_some()执行的。

面向流的 I/O 对象的示例包括 ip::tcp::socket,ssl::stream<>,posix::stream_descriptor,windows::stream_handle等。

程序通常希望传输确定数量的字节。当发生短读或短写时,程序必须重新开始操作,并继续直到传输所需的字节数。Asio 提供了自动执行此操作的通用函数read(),async_read(),write()和async_write()。

Why EOF is an Error

流的结束可能导致read、 async_read、read_until或async_read_until函数违反它们的规则。例如,由于 EOF,读取N 字节可能会提前完成。
EOF错误可用于区分流的结束与大小为 0 的成功读取。

原文

Asio Streams, Short Reads and Short Writes相关推荐

  1. Hybrid assembly with long and short reads improves discovery of gene family expansions

    Hybrid assembly with long and short reads improves discovery of gene family expansions 长读和短读混合装配提高了基 ...

  2. An Error Correction and DeNovo Assembly Approach for Nanopore Reads Using Short Reads

    An Error Correction and DeNovo Assembly Approach for Nanopore Reads Using Short Reads 一种使用短read的纳米孔读 ...

  3. CoLoRMap: Correcting Long Reads by Mapping short reads CoLoRMap:通过映射短读来纠正长读

    CoLoRMap: Correcting Long Reads by Mapping short reads CoLoRMap:通过映射短读来纠正长读 Motivation: 第二代测序技术为测序基因 ...

  4. java short 写法_Java Short longValue()用法及代码示例

    Short类的java.lang.Short.longValue()方法是Java中的内置方法,用于将Short对象的值返回为long. 用法 ShortObject.longValue() 返回值: ...

  5. short 用equals_Java Short类equals()方法的示例

    short 用equals 短类equals()方法 (Short class equals() method) equals() method is available in java.lang p ...

  6. Toward perfect reads: self-correction of short reads via mapping on de Bruijn graphs

    走向完全读:通过在de Bruijn图上的映射,实现短读的自我校正 动机 短读精度对于下游分析(如基因组组装和杂交长读校正)非常重要.尽管在短读校正方面做了大量的工作,但是现在的校正器要么不能很好地在 ...

  7. 基本功short与Unsigned short以及Java基本类型

    C和C++中: short两个字节长度,其中符号位占了一位.所以实际数值位数是15位.取值范围为:-32768~+32768. unsigned short没有符号位,所以实质数值位数是16位.取值范 ...

  8. short与Unsigned short以及Java基本类型

    C和C++中:  short两个字节长度,其中符号位占了一位.所以实际数值位数是15位.取值范围为:-32768~+32768.  unsigned short没有符号位,所以实质数值位数是16位.取 ...

  9. CARD耐药数据库Linux使用

    一.背景 关于耐药性有很多数据库可以使用,但是CARD的优势在于数据库较为准确,只有经过文章进行验证后的基因才会被记录 二.软件链接 软件github: GitHub - arpcard/rgi: R ...

最新文章

  1. perl:cpanm安装方式的一种取代方法
  2. 拥抱大家庭,nodejs走thrift
  3. oracle获取父级,如何通过sql获取oracle connect中的最终父id列
  4. python api是什么_python – 如何处理API响应
  5. oracle数据库恢复参数文件位置,Oracle数据库的参数文件备份与恢复
  6. Unity中音效插件
  7. 【Java 判断素数的几个方法】简单理解
  8. 高速局域网文件传输工具(速度可达20M) 的企业云盘
  9. 台达plc自由口通讯_台达PLC串行通讯应用原理
  10. 棋盘分割(区间DP)
  11. jquery实现图片拖动
  12. 演唱会门票1秒钟就没了?没错,跟你竞争的不是人……
  13. bind9 dlz mysql_bind-9.4.2+mysql dlz安装
  14. postfixcalc函数 java_结对编程--四则运算(Java)萧英杰 夏浚杰
  15. Ubuntu安装qt 5.12
  16. CPU分析系列--vmstat/pidstat -wt分析进程/线程上下文切换造成的性能瓶颈
  17. VS2019 MFC ODBC 操作SQL SERVER 数据库
  18. 【Python中字典的len()方法】
  19. (二)Pgcluu监控
  20. 【算法-面试】区间专题

热门文章

  1. 【原创】xenomai+linux双内核下的时钟管理机制
  2. NDK-r25交叉编译qemu:tests/qtest/libqos/libqos.fa.p/pci.c.o报错
  3. Zabbix忘记登录密码重置
  4. 使用logisim设计简易CPU
  5. spring boot mybatis 日志打印配置
  6. STM32F103系列的单片机定时器
  7. Android 自定义一个Toast
  8. (转)eclipse 打开pom.xml文件很慢 设置pom.xml打开方式
  9. 打地鼠java代码流程图_51单片机 普中51 打地鼠游戏 仿真 程序 流程图
  10. 【Free5GC】test.sh脚本测试流程