转载:http://blog.sina.com.cn/s/blog_70146dce0102wep1.html

Cport的Timeout属性定义了详细的读写超时设置。 当一个特别操作的超时时间达到了,这个操作被放弃掉,也不会产生任何错误。

通过超时参数可以定义两种类型的超时时间。 一个间隔超时发生在:两个字节接受间隔超过特定时间。 一个总超时发生在:读操作超过了一定时间。这个计时从i/o操作开始时计时。

写操作只支持总超时。  读操作支持两种超时。  指定时间的单位都是ms。

几个参数:

[ReadInterval] —— 指定读间隔超时时间。0 值 表示间隔超时时间没有被应用。-1值 结合ReadTotalConstant和ReadTotalMultiplier都为0,指定读操作立即返回接收到的字节,即便是没有任何字节。

[ReadTotalConstant] —— 指定总超时时间。 对每个读操作而言,这个值与ReadTotalMultiplier和字节数的乘积相加才是总超时时间。如果ReadTotalMultiplier和ReadTotalConstant都是0,说明总超时时间没有被应用。如果一个应用程序设定ReadInterval和ReadTotalMultiplier都为-1,并且设置 ReadTotalConstant大于0,会发生以下情况中的一种:如果input buffer中有任何字节,读函数立即返回这些字节;如果input buffer中没有字节,读函数等待字节,直到有字节到达,立即返回字节; 如果在ReadTotalConstant所设定的时间内,都没有字节返回,那么读操作超时。

[ReadTotalMultiplier] —— 指定read total timeout的乘子。如果ReadTotalTimeout和ReadTotalConstant都为0值,说明总超时时间没有被应用。注意:如果都设为0,当连接失败时可能会导致死机。因为没有了超时检测。

[WriteTotalConstant] —— 指定常数,用于计算写操作的总超时时间。对每个写操作而言,这个值与WriteTotalMultiplier和字节数的乘积相加才是从超时时间。WriteTotalMultiplier和WriteTotalConstant都为0表示总超时时间对写操作没有应用。

[WriteTotalMultiplier] —— 指定write total timeout的乘子。 如果WriteTotalTimeout和WriteTotalConstant都为0值,说明总超时时间没有被应用。

设置范例:

ReadInterval := 20;

ReadTotalConstant := 2000;

ReadTotalMultiplier := 200;

WriteTotalConstant := 200;

WriteTotalMultiplier := 20;

Delphi中CPort控件之Timeout属性的更多相关文章

  1. C# winform项目中ListView控件使用CheckBoxes属性实现单选功能

    C# winform项目中ListView控件使用CheckBoxes属性实现单选功能 在做项目时需要使用ListView控件的CheckBoxes属性显示,还要在点击行时自动选中CheckBoxes ...

  2. Delphi中WebBrowser控件打开部分网站报"Invalid floating point operation”解决

    Delphi中WebBrowser控件打开部分网站报"Invalid floating point operation”解决 EmbeddedWBWebBrowserDelphi  最近用E ...

  3. WPF中Image控件的Source属性

    原文:WPF中Image控件的Source属性 imgBook 是一个Image控件,在后台代码中我想给它指定Source的属性.我先如下方式进行: Uri uri = new Uri(strImag ...

  4. WPF中PasswordBox控件的Password属性的数据绑定

    原文:WPF中PasswordBox控件的Password属性的数据绑定 英文原文:http://www.wpftutorial.net/PasswordBox.html 中文原文:http://bl ...

  5. Delphi中TxmlDocument控件的用法 转

    Delphi中对XML文件的解析做的很好,比直接使用MS的MSXML2_TLB中的接口要方便很多,现称述于下面. 在讲之前先给出一个XML实例,在讲某些部分是要结合实例比较容易理解. 1<?xm ...

  6. delphi中panel控件应用

    delphi中的panel控件是怎么使用的?研究了很久了,还是搞不懂,只知道把它放到form上面,其他操作一律不懂了,有谁可以请教一下,如何把其他控件放到里面去呢?谢谢 提问者采纳   直接把控件放到 ...

  7. C#winform中使用控件的Dock属性进行布局

    想要实现如下布局,可以通过设置控件的Dock属性达到效果 1.拖放一个panel控件一个label控件(放在panel中)和一个treeView控件到TestForm中 2.设置panel的Dock属 ...

  8. WPF中利用控件的DataContext属性为多个TextBox绑定数据

    工作上需要从给定的接口获取数据,然后显示在界面的编辑框中,以往肯定会一个一个的去赋值,但这样太麻烦而且效率很低,不利于维护,于是想到了数据绑定这一方法,数据绑定主要利用INotifyPropertyC ...

  9. 【转】WPF中PasswordBox控件的Password属性的数据绑定

    英文原文:http://www.wpftutorial.net/PasswordBox.html 中文原文:http://blog.csdn.net/oyi319/article/details/65 ...

随机推荐

  1. HDU 5007 字符串匹配

    http://acm.hust.edu.cn/vjudge/contest/122814#problem/A 匹配到字符串就输出,水题,主要是substr的运用 #include <iostre ...

  2. 阿里巴巴国际站 网站和PC客户端都登录不了,其他电脑或手机可以

    背景 昨天晚上,我还能打开阿里巴巴国际站,PC客户端也可以登录 今天早上起床打开电脑,发现国际站的网站打开不了,客户端也登录不了,提示了错误信息,但是其他电脑或手机就可以登录 原因分析 1.是不是本机 ...

  3. Django——form组件和ModelForm

    一.原生form实现书城增删改查 1.构建模型并完成数据库迁移 (1)构建书城模型 from django.db import models # Create your models here. # ...

  4. Revolution of Unix

  5. Java使用imageio、awt生成图片验证码

    1.生成验证码工具类 public class CheckCodeTool { private Integer width = 80; private Integer height = 38; pub ...

  6. 正则表达式备忘录-Regular Expressions Cheatsheet中文版

    正则表达式备忘录Regular Expressions Cheatsheet中文版原文:https://www.maketecheasier.com/cheatsheet/regex/ 测试文件a.t ...

  7. Flask入门之模板导入与块宏(六)

    1 模板包含include 主体结构(导入整个模板,直接渲染不可修改) {% include('模板名称') %} {% include('目录/模板名称') %} 功能: 其功能就是将另一个模板加载 ...

  8. mysql在表的某一位置增加一列、删除一列、修改列名

    如果想在一个已经建好的表中添加一列,可以用以下代码: ) not null; 这条语句会向已有的表中加入一列,这一列在表的最后一列位置.如果我们希望添加在指定的一列,可以用: ) not null a ...

  9. (EXPDP) Fails With Errors ORA-39079 ORA-25306 On One Node In RAC Environment

    分类: Oracle DataPump export on one certain RAC instance fails with errors: ORA-39006: internal errorO ...

  10. 【转载】#458 Errors While Converting Between enum and Underlying Type

    You can convert to an enum value from its underlying type by casting the underlying type (e.g. int) ...