zoukankan      html  css  js  c++  java
  • 多个流,简短的读和写

    Boost::Asio中的许多I/O对象是流导向的,这意味着;
    @没有消息边界,在传输的数据是一个连续的字节序列
    @读或者写传输的字节可能比请求更小,这就是被称作简短的读或者写
    提供流定向模型的对象一个或者多个下列类型的必要条件:
    SyncReadStream,使用成员函数read_some()执行同步的读操作
    AsyncReadStream,使用成员函数async_read_some() 执行异步读操作
    SyncWriteStream, 使用成员函数write_some()执行一个同步的写操作
    AsyncWriteStream,使用成员函数async_write_some()执行一个异步的写操作
    流导向的对象的例子有:ip::tcp::socket, ssl::stream<>, posix::stream_descriptor, windows::stream_handle等
    程序往往需要发送指定数量的字节,当出现简短的读和写的时候程序需要重启操作,然后继续这么做,直到所有数据全部发送完成,Boost::Asio提供了完成这些操作的自动函数read(), async_read(), write() 和 async_write(). 
    为什么EOF是一个错误
    @流的终结符可能导致read, async_read, read_until or async_read_until 违反了调用者的期待,读取N个字节的操作可能因为EOF而提前结束。
    @EOF错误可以用来成功读取0个字节以后判断流是否完结
  • 相关阅读:
    Linux安装Oralce 11g问题
    Hadoop 2.X 集群安装
    Centos图形界面关闭与开启
    SecureCRT乱码
    Hadoop 1.X 集群安装
    ThinkPad E430c 开机启动
    Node.js运行端口修改
    Node.js代理设置
    Github安装过后删除右键菜单选项
    吴恩达深度学习笔记 第四章作业1
  • 原文地址:https://www.cnblogs.com/learn-my-life/p/5272176.html
Copyright © 2011-2022 走看看