字节流与消息

  所使用的管道和FIFO的例子都是字节流I/O模型,这是Unix原生的I/O模型模型,这种模型无记录边界,也就是读写操作不检查数据。如:从某个FIFO读100个字节的进程无法判定该FIFO写入的这100个字节的进程执行了单个100个字节的写操作,5个20字节的写操作等,或写入35个字节后在写入65个字节,这种数据是字节流,系统不对他作解释,他如果需要某种解释,读进程和写进程就得同意这种解释,并亲自去做。

  传送的消息加上某种结构,当数据由长度可变消息构成时,读者必须知道这些消息的边界以判定何时读出单个消息

  1. 带内特殊终止序列:许多Unix用换行符来分割每个消息,写进程给每个消息加个换行符,读进程每次读出一行,这种方法在数据中任何出现分隔符都做转义处理也即是以某种方式把他们标志成数据而不是作为分隔符。(http,ftp后跟双字节序列(CR/LF)分割文本记录
  2. 每个记录前冠以长度,不需通过转义字符来分割数据,不需要扫描整个数据来寻找每个记录结束的位置
  3. 每次连接一个记录:应用程序关闭与对端的连接(网络应用为TCP连接,IPC为IPC连接)来指示一个记录的长度,为每个记录创建一个新的连接,HTTP1.0使用这一技术

用标准I/O函数fdopen将标准I/O与pipe返回的某个已打开的文件描述符关联

 

转载于:https://www.cnblogs.com/tianzeng/p/10702037.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值