博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字节流与消息
阅读量:4970 次
发布时间:2019-06-12

本文共 607 字,大约阅读时间需要 2 分钟。

  所使用的管道和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

你可能感兴趣的文章
NOI2014 购票
查看>>
i am back
查看>>
vue-cli项目npm run build后,index.html无法在浏览器打开
查看>>
水题 HDOJ 4727 The Number Off of FFF
查看>>
实验四
查看>>
C++生成随机数:瑞利(Rayleigh)分布(Rayleigh distribution)
查看>>
HDU4548 美素数
查看>>
Java 单字节、多字节读取文本文档中的内容
查看>>
JAVA第三次作业
查看>>
题目1436:Repair the Wall
查看>>
hdu 5074 相邻数和最大dp
查看>>
20145236《网络对抗》进阶实验——Return-to-libc攻击
查看>>
网络流模板
查看>>
PHP之文件的锁定、上传与下载
查看>>
摄像头
查看>>
Java的封装
查看>>
使用ADB无线连接Android真机进行调试
查看>>
MD5 和的价值体现在哪里,它是用来做什么的?
查看>>
常见排序算法-----直接插入排序
查看>>
python中lxml的应用
查看>>