• 浅谈SOCKET字节流和字符流的区别


    字节流顾名思意是处理2进制的
    字符流处理的字符集
    网友回复:字节流就是流里的最小单位是byte,一个byte所包含的信息的-128到127. 仅此而已。
    字符流就是流里的最小单位是char,一个char表示一个符号,如数字,字面,标点等等。要表示一个符号,就必须知道这个符号的编码方式。如ascii,utf-8, gb2312等等。就是考这些编码方式将符号编码之后在存入char变量中。
    换个角度说,我们看一个字节流时,只关注每个字节是多大。但是在关注字符流时,我们需要从这个字符有多大,编码格式是什么,来看出这个字符表示一个什么符号。

    流,字符流和字节流都是什么
     
    流就是stream.   一个连续的字节队列。
     
    流是程序输入或输出的一个连续的字节序列,设备(例如鼠标,键盘,磁盘,屏幕和打印机)的输入和输出都是用流来处理的。在C语言中,所有的流均以文件的形式出现---不一定是物理磁盘文件,还可以是对应与某个输入/输出源的逻辑文件
     
    流(streams)在I/O系统中是一种I/O机制和功能,或者称为streams子系统。它本身并不是一个物理设备的概念。  
      引入流的目的:  
      传统的字符设备驱动程序框架有许多缺点,这表现在:  
      。内核与字符设备驱动程序间接口的抽象层次太高  
      。内核没有为字符设备提供可靠的缓冲区分配和管理功能  
      。许多系统对字符设备的界面是把数据看成是FIFO(先进先出)的字节流,因此没有识别消息边界,区分普通设备和控制信息,以及判定不同消息优先级的能力,也没有字节流流量控制  
      。在网络数据传输设备中这些问题更突出。网络中数据传输是基于消息或数据分组的。  
      流的概念:  
      用通讯中的术语来说,流是全双工的处理过程,它是内核中驱动程序和用户进程之间的数据传输通道。  
      从流的构造上来说,它由一个流头,一个流驱动程序尾,以及其间的零个或若干个可选模块构成   。流头是一个用户级接口,它允许用户应用程序通过系统调用接口来访问流。驱动程序尾与底层设备通信。在流的中间的模块是处理数据的。

    转载自:http://fuzhong1983.blog.163.com/blog/static/168470520081111113125717/

  • 相关阅读:
    CF384 div2 E. Vladik and cards
    学习Opencv Chat3
    Octave 命令积累
    Python学习-31.Python中集合的一些操作
    Python学习-30.Python中的元组(tuple)
    Python学习-29.Python中列表的一些操作
    Python学习-28.Python中的列表切片
    Python学习-27.Python中的列表(list)
    Python学习-26.Python中的三角函数
    Python学习-25.Python中的分数
  • 原文地址:https://www.cnblogs.com/jeekun/p/2011263.html
Copyright © 2020-2023  润新知