非尺寸限制流功能的术语是什么?

时间:2011-09-21 14:16:01

标签: delphi stream terminology delphi-xe

据我所知,流是固定大小的,无论它们是内存还是文件流。是否存在开放式流的术语,如串行端口或网络套接字连接?

我在Delphi XE工作。我查看了TStream降级的类。我想创建一个适用于串行端口,网络套接字,键盘输入或模拟数据的通用类的接口。这些是没有指定长度的数据流,包含可用数据包。

我对正确的搜索词感到茫然。也许正确的术语是套接字,但这似乎是一个更具体的网络术语。

3 个答案:

答案 0 :(得分:4)

流,管道,套接字,文件,等等......它们都是相似的,如下所示:

  • 初始化(打开)然后销毁(关闭);
  • 您在此结构上有一个句柄(实例);
  • 您使用的读取和写入方法可以检索的内容少于请求的内容(它允许未大小/无限/抽象流)。

例如,在POSIX/UNIX世界中,“一切都是文件”,甚至是网络,设置,cpu,设备......

在Delphi中,您可以完美地继承TStream来实现此行为。

即使Seek方法也不需要处理所有情况。您可以拥有单向/单向流,只读或只写流。

然后你可以与不同的TStream实现共享相同的代码,进出文件,网络,一些内存,键盘,屏幕,等等...你甚至可以嵌套流,以便添加即时压缩,加密,复制...

因此,如果您处于Delphi世界,只需将其命名为“stream”,实现TStream ...并且编码愉快!

答案 1 :(得分:2)

它仍然是一个流。您可以将其称为顺序访问流,以将其与随机访问流区分开来。在实施TStream后代时,如果有人调用它来寻求向后,向前或任何其他不允许的使用,您可以自由地使用Seek方法抛出异常。

可以从中读取但未写入的内容,可以写入但不能读取的内容是 sink 。这些条款没有隐含的固定尺寸。

答案 2 :(得分:0)

收听端口,套接字或其他类型的通信有时称为嗅探器协议分析器

为此实现一般方法并非易事。

您必须为每种类型的通信实现特定的抽象层。 例如,在不知道协议格式的情况下收听串口注定要失败。