TIdCmdTCPServer 和 TIdCmdTCPClient 应该一起使用吗?

2024-02-05

我正在尝试编写一个服务器和一组与服务器通信的客户端。服务器将维护不同客户端的状态,并允许它们在状态发生变化时向中央服务器发出警报。专业客户端将允许控制其他连接的客户端。

我将服务器作为 TIdCmdTCPServer,客户端(目前)使用 TIdTCPClient 进行连接。

如果客户端正在发送和接收命令,他们是否应该使用 TIdCmdTCPClient?我读到 CmdTCPServer 和 CmdTCPClient 并没有真正一起使用 - 是不是它们不必一起使用?

对于这个问题的普遍模糊性,我深表歉意,但我才刚刚开始研究这个问题,在陷入细节之前需要先思考一下。

谢谢你的帮助

Mark H


从技术上讲,将 TIdCmdTCPClient 和 TIdCmdTCPServer 一起使用是可行的,但一般情况下不建议这样做。这些组件设计用于异步处理入站命令。让客户端等待服务器命令,而让服务器同时等待客户端命令是没有意义的。这是使连接陷入僵局的好方法,因为它们都在等待彼此的数据,并且在没有输入的情况下实际上都不会发送任何内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TIdCmdTCPServer 和 TIdCmdTCPClient 应该一起使用吗? 的相关文章

  • 如何更新Delphi对象检查器?

    继我最近发布的这个问题之后 组件编辑器可以在多个组件上执行吗 https stackoverflow com questions 14802371 can a component editor be executed on multiple
  • ADODB 组件导致 Win7/Server 2008 上的访问冲突

    我有一段用 Delphi 2005 编写的代码 用于在 LDAP 中搜索用户的特定属性 当在 Windows 7 或 Server 2008 上运行时 我遇到访问冲突 但在 XP 或 2003 上则没有 Function IsSSOUser
  • 如何添加资源并使用它们

    在我的应用程序中 我想添加 2 个图像作为资源 我想使用这些图像 当我在应用程序中单击 是 按钮时 第一张图像将被设置为壁纸 当我在应用程序中单击 否 按钮时 第二张图像将被设置为桌面壁纸 提前致谢 regards 最简单的方法是创建一个文
  • 在运行时创建 TQReport 元素

    在运行时创建 TQReport 元素 嗯 至少尝试一下 我不知道这份报告中应出现哪些标题或数据 我得到一个代表数据行和列的 TString 的 TList 我在组的带打印事件中植入 创建 指令 并在主数据行带的 OnNeedData 事件中
  • VCL.位图到 FMX.位图

    我在网上找到了这段代码 但 FMX Bitmap 没有扫描线 是否可以以某种方式将 VCL TBitmap 复制或绘制到 FMX Bitmap IFDEF MSWINDOWS type TBitmap FMX Types TBitmap T
  • 如何确保 FormClose 程序运行,无论程序如何退出?

    在 Delphi 7 中 我有一个 TMainForm FormClose 过程 旨在在程序退出时写出一些状态 这在手动关闭程序时效果很好 但是 我发现如果程序被 Windows 强制 退出 例如在 Windows 更新后需要重新启动 则不
  • Delphi线程死锁

    我有时会在销毁某些线程时遇到死锁问题 我尝试过调试该问题 但在 IDE 中调试时似乎从未存在死锁 可能是因为 IDE 中的事件速度较低 问题 当应用程序启动时 主线程会创建多个线程 线程始终处于活动状态并与主线程同步 完全没有问题 当应用程
  • Delphi - 自XE8以来如何正确注册图形类?

    我正在编写一个 Delphi 包 它提供了一个新的自定义 TGraphic 对象 允许读取 VCL 组件 如 TImage 中的新图像格式 我最初使用 RAD Studio XE7 开发了这个包 并且运行良好 然而 我最近迁移到了较新的 R
  • 如何根据输入的内容过滤组合框的内容?

    我们有一个包含 100 多个项目的组合框 当我们在组合框中输入字符时 我们想要过滤掉项目 例如 如果我们输入 ac 并单击下拉选项 那么我们希望它仅显示以 ac 开头的项目 我怎样才能做到这一点 也许您会更喜欢使用操作系统内置的自动完成功能
  • 如何仅使用 TADOQuery 组件将图像插入数据库

    我有一个简单的基本问题 我正在尝试使用将图像插入数据库Insert与其他列值的语句也使用TADOQuery成分 由于代码已经由某人编写 因此我想在此处放置一些虚拟示例代码 以供您澄清相应的步骤 请注意 这可以正常工作TQuery组件 因为我
  • Delphi 返回 TList 时出错

    我做了一个非常简单的应用程序 但我有一个我真的无法理解的问题 看一下这个基本代码 unit Unit1 interface uses Winapi Windows Winapi Messages System SysUtils System
  • 具有 csOwnerDrawFixed 样式的组合框如何表现得像 csDropDown 样式?

    我正在使用一个组合框 http docwiki embarcadero com Libraries en Vcl StdCtrls TComboBoxstyle 属性设置为的组件csOwnerDrawFixed 我实现了绘图项一切工作正常
  • 为什么未初始化的指针会导致内存访问冲突接近 0?

    据说often 但并非总是如此 当你在接近于零的内存位置 比如 89 美元 获得 AV 时 你就有了一个未初始化的指针 但我也在 Delphi 书籍中看到了这一点 嗯 或者它们都是由同一作者写的 Update 引自 Bob Swart 等人
  • 在 Delphi 中使用 XML(将特定数据返回到变量)

    过去几天我一直在尝试使用 Delphi 2010 和 MSXML 我是一个极端的新手 需要一点指导 var MemoryStream TMemoryStream XMLPath String sName String XMLDoc vari
  • 如何调试仅在应用程序关闭时发生的崩溃? (德尔福)

    因此 经过最近的一些更改 我们发现我们最古老的应用程序之一有时会在关闭时崩溃 这会以 运行时错误 216 消息的形式或来自 Windows 错误报告的消息的形式表明应用程序已停止工作 该应用程序已经发出OutputDebugString 每
  • Delphi 6 命令行编译:无 DCU

    当对 dpr 文件使用 dcc32 时 它会生成一个 dll 但不会生成 dcu 项目级别 cfg 使用 N 开关设置路径 但指定的目录中没有任何内容 当 E 开关正在工作时 它必须看到 cfg 我尝试在调用 dcc32 之前对 dpr 文
  • 命名管道性能问题

    我使用命名管道进行 C 和 Delphi 之间的过程间通信 C 使用System IO Pipes包 而 Delphi 使用Libby s pipes pas 不幸的是 通信几乎是高性能的 分析显示通信占用了整个运行时间的 72 其余的用于
  • 供所有 Win32 程序员在 Windows Aero Glass(DWM、GDI、GDI+)上绘图的文档和 API 示例

    我正在寻找良好的资源来学习使用 Win32 GDI API 或任何替代它的内容 以便使用 Win32 API 直接在玻璃窗体上进行绘制和绘制 当我使用 Delphi 时 我将其标记为 Delphi 或 Visual C 您能找到的任何代码示
  • 在比较 Delphi 表单文件的版本时,如何使 Beyond Compare 忽略某些差异

    我使用Beyond Compare 版本3 1 10 来比较不同版本的Delphi Form Files 但我不想看到有关ExplicitTop ExplicitLeft ExplicitHeight 和ExplicitWidth 的差异
  • delphi THashSHA2 在大文件上返回错误的 SHA256

    Data Cloud CloudAPI pas has class function TCloudSHA256Authentication GetStreamToHashSHA256Hex const Content TStream str

随机推荐

  • Socket.io 不在 /socket.io/socket.io.js 中提供服务

    我已经在这里阅读了有关我的 node js 问题的答案 但我的问题仍然存在 在服务器中使用socket io 一切看起来都正常 但在客户端 chrome 说 无法加载资源 服务器响应状态为 404 未找到 本地主机 3382 so cket
  • 两个向量的欧氏距离

    如何找到两个向量的欧几里得距离 x1 lt rnorm 30 x2 lt rnorm 30 Use the dist 函数 但您需要根据第一个参数的两个输入形成一个矩阵dist dist rbind x1 x2 对于OP问题中的输入 我们得
  • eclipse远程调试超时问题

    当我尝试连接到本地计算机上的远程服务器 jboss 时 一切工作正常 但是如果我尝试连接到远程计算机 再次连接到jboss Eclipse 就会开始连接 并在一段时间后告诉我 Failed to connect to remote VM C
  • 空文件构造函数既不是文件也不是目录

    以下两种创建文件的方法有什么区别 new File System getProperty user dir new File Java 将第一个识别为目录 第二个识别为目录既不是文件也不是目录 为什么会这样 Code public clas
  • MVC 3模型foreach过滤器

    我有以下剃刀语法 foreach var p in Model b p Age b 我想过滤 foreach 循环以仅查看 p City New York 的模型记录 我的语法会是什么样子 我希望我能正确解释这一点 Thanks forea
  • 在 iOS8 中:UIPopoverController PresentPopoverFromRect 不再适用于 keyWindow

    如标题所示 在 iOS8 中 UIPopoverControllerpresentPopoverFromRect 不再适用于 UIApplicationsharedApplication keyWindow iOS7下确实可以用 我验证了以
  • DB2 SQL 中的正则表达式

    除了使用 UDF 是否有对 DB2 9 7 的 REGEXP In SQL 支持 从 DB2 11 1 开始 有内置的正则表达式支持 其中一项新功能是REGEXP SUBSTR http www ibm com support knowle
  • 如何更改大屏幕的背景颜色?

    我想知道如何更改 jumbotron 类的背景颜色 它有一个默认值background color eee在 bootstrap css 中 我试图通过删除它并给出属性来覆盖none none important transparent进入
  • 使用 typescript 和 angular2 将图像上传到存储 blob

    我正在使用打字稿开发 Angular 2 应用程序 在我当前的项目中 我实现了将图像上传到天蓝色存储 blob 的功能 为此我点击了以下链接 http www ojdevelops com 2016 05 end to end image
  • 如何在 Pillow-Python 中使用流打开简单图像

    from PIL import Image image Image open image jpg file path io BytesIO image save file path JPEG image2 Image open file p
  • WCF 证书身份验证不起作用

    我已经构建了 WCF helloworld 客户端和服务器 我想在它们之间使用证书身份验证 我收到的错误是 调用者未经服务验证 我使用 makecert exe 创建了两个证书 客户端上的证书安装在 个人 受信任的人 和 第三方根证书颁发机
  • 如何使用 Azure Function 中的 Azure 托管身份通过触发器访问服务总线?

    我在 Azure 中创建了一个 ServiceBus 命名空间 以及一个主题和订阅 我还有一个简单的 Azure 版本 1 函数 可以触发 ServiceBus 中收到的主题 如下所示 FunctionName MyServiceBusTr
  • Django自定义注解功能

    我想使用 Django 构建一个简单的热门问题列表 我有一个function https web archive org web 20150526231733 http amix dk blog post 19588评估 hotness 每
  • 简单的C程序

    该程序基于K R中输入 输出部分的程序 include
  • 输入字符时无限循环[重复]

    这个问题在这里已经有答案了 我试图限制用户仅输入 1 或 2 int ch do cout lt lt Enter n cin gt gt ch switch ch case 1 cout lt lt 1 break case 2 cout
  • 在后台加载 MKMapView 并从中创建 UIImage (iPhone 和 iPad)

    我遇到一种情况 我需要一种加载具有多个覆盖层的 MKMapView 的方法 此地图视图不应显示在屏幕上 我需要加载它的唯一原因是为了从地图创建图像以供在其他地方使用 我在网上查了一下 但没有找到解决问题的方法 请问有人可以帮我吗 这是我到目
  • 如何确保队友不会通过重写历史来搞砸 git 存储库?

    常见的建议似乎是不要在提交提交后重新设置基准 重置或执行其他 历史重写 操作 建议在您自己的机器上执行所有这些类型的切片和切块 但一旦您推送了它 就顺其自然 这是有道理的 但如何执行这项政策呢 对于多个开发人员 我们如何确保没有人这样做 似
  • 仅在调试构建变体中包含 Stetho

    我知道我可以使用debugCompile只拉入一个dependency为了debug build 有没有一种好的 简化的方法来做到这一点code initialization这也是必需的吗 如果没有依赖项 其他变体将无法编译 检查 Tani
  • 如何使用 PHP 混淆 JavaScript? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 例如 我如何混淆以下示例代码 The code below will write to a heading and to a paragr
  • TIdCmdTCPServer 和 TIdCmdTCPClient 应该一起使用吗?

    我正在尝试编写一个服务器和一组与服务器通信的客户端 服务器将维护不同客户端的状态 并允许它们在状态发生变化时向中央服务器发出警报 专业客户端将允许控制其他连接的客户端 我将服务器作为 TIdCmdTCPServer 客户端 目前 使用 TI