登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

有事儿您说话!

爱吃,爱旅游,爱什么,好的事儿我都爱

 
 
 

日志

 
 
 
 

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

2008-12-11 11:31:25|  分类: SOCKET |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

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

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

  评论这张
 
阅读(2811)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018