浅谈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/

转载于:https://www.cnblogs.com/jeekun/archive/2011/04/10/2011263.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值