使用Delphi 2010编写TCP IP消息系统(客户端/服务器)的建议

2024-02-25

我想在 Delphi 2010 中使用 TCP IP 编写一个消息系统。我想听听使用标准 delphi 2010 组件/indy 组件来执行此操作的最佳选择是什么。

我想编写一个服务器,它可以侦听消息并将消息转发到网络上运行客户端的所有计算机。

1.) a.) 客户端可以将消息发送到服务器以转发给所有其他客户端 b.) 客户端监听来自其他发送者的消息(通过服务器)并显示消息。

2.) a.) 服务器可以向所有客户端发送消息 b.) 服务器将来自客户端的任何消息转发给所有其他客户端

感谢您的任何建议

注意:我不是在编写即时消息或聊天程序。这只是一个用户可以向其他用户发送警报/消息的系统 - 他们不能互相回复!禁止任何商业、共享软件等链接 - 请!我想听听您将如何编写此类系统以及您将采用什么方法,以及您可能会使用的 TCP IP 消息传递架构。无论是直接的 Winows API、Indy 组件等等。


如果这仅限于 Windows,并且您不想使用第 3 方库,那么您可以跳过 TCP/IP 并继续邮槽 http://msdn.microsoft.com/en-us/library/aa365576(v=vs.85).aspx.

Edit:如果你想要保证交付,那么命名管道是一个更好的解决方案。这个问题 https://stackoverflow.com/questions/512366/how-do-i-send-a-string-from-one-instance-of-my-delphi-program-to-another has a few https://stackoverflow.com/questions/512366/how-do-i-send-a-string-from-one-instance-of-my-delphi-program-to-another/512796#512796 nice answers https://stackoverflow.com/questions/512366/how-do-i-send-a-string-from-one-instance-of-my-delphi-program-to-another/512405#512405与 Delphi 命名管道示例。

A mailslot是一种单向机制 进程间通信(IPC)。 应用程序可以将消息存储在 邮槽。邮槽的所有者 可以检索存储的消息 那里。这些消息通常是 通过网络发送到 指定计算机或所有计算机 在指定的域中。一个域是一个一组工作站和服务器 共享群组名称.

他们不需要 Windows 域,他们通过 LAN 工作。

德尔福页面 http://www.delphipages.com/有一个不错的在 Delphi 中进行 IPC 的失败 http://www.delphipages.com/articles/distributed_applications__the_easy_way__part_1_-9218.html,包括邮槽。

--jeroen

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

使用Delphi 2010编写TCP IP消息系统(客户端/服务器)的建议 的相关文章

  • 如何在 ZeroMQ 套接字中检索和存储随机 UUID?

    我需要在多个客户端之间进行通信 当我尝试运行文件 多个终端 时 我得到相同的身份 所以我让路由器套接字自动设置UUID 但我发现我无法使用该身份存储在服务器上以在多个客户端之间进行路由 我如何处理多个客户端 ID 我正在尝试构建一个异步聊天
  • IRC 机器人:错误 - 注册超时

    我正在用 C 语言制作一个简单的 IRC 机器人 我终于让机器人连接并接收信息 我的代码也应该发送 但服务器表现得好像没有发送任何内容 当机器人连接时 我收到以下信息 收到 roc esper net 通知授权 查找您的主机名 收到 roc
  • 无法通过Delphi替换Word应用程序中的页脚文本

    我正在尝试替换页脚中的文本 我使用以下代码 通过它我可以替换正常内容 正文 但不能替换页脚 页眉中的内容 myWinWordApp CreateOLEObject Word Application myWinWordApp visible
  • .NET Windows 服务中调用 C# 的 wait 的 I/O 回调是否可以不阻塞?

    我知道在 ASP NET 中 当使用 wait 时工作线程会返回到池中 而 I O 发生在后台 这对于可扩展性非常有用 我的 Windows 服务是一个套接字服务器 它使用 Begin End 样式的异步套接字 I O 混合我的魔法 我知道
  • vcl组合框并不总是显示它有焦点

    当我从另一个控件切换到组合框时 它会显示文本周围带有虚线的框 但是当我以编程方式将控件设置为活动状态时 它不会显示相同的焦点指示器 这种行为有解决方法吗 我有德尔福XE6 MCVE unit Unit27 interface uses Wi
  • 递归遍历树视图中的节点?

    我有一个树视图 其中已经填充了另一个过程中的文件 文件夹 我想按照从上到下的确切顺序逐项迭代树视图中的项目 但是 与普通列表不同 我不能仅使用简单的for对此的声明 我必须进入每个节点等 我该怎么做呢 我希望有一种方法可以在不运行递归过程的
  • socketcan如何处理仲裁?

    我非常了解 CAN 协议的工作原理 当两个节点尝试同时使用网络时 较低 id 的 CAN 帧会获得优先级 而另一个节点会检测到这一点并停止 当使用 socketcan 时 这似乎被抽象化了 我们只需像任何文件描述符一样写入和读取 我可能误解
  • 如何通过 Python socket.send() 发送字符串以外的任何内容

    我对 Python 编程非常陌生 但出于必要 我必须快速地将一些东西组合在一起 我正在尝试通过 UDP 发送一些数据 除了当我执行 socket send 时 我必须以字符串形式输入数据之外 一切都正常 这是我的程序 这样你就可以看到我在做
  • 通过套接字发送字符串(python)

    我有两个脚本 Server py 和 Client py 我心中有两个目标 能够从客户端一次又一次地向服务器发送数据 能够将数据从服务器发送到客户端 这是我的 Server py import socket serversocket soc
  • 如何添加资源并使用它们

    在我的应用程序中 我想添加 2 个图像作为资源 我想使用这些图像 当我在应用程序中单击 是 按钮时 第一张图像将被设置为壁纸 当我在应用程序中单击 否 按钮时 第二张图像将被设置为桌面壁纸 提前致谢 regards 最简单的方法是创建一个文
  • 如何将我的图标添加到组件选项板页面中的组件? [复制]

    这个问题在这里已经有答案了 可能的重复 Delphi非可视化组件图像 https stackoverflow com questions 3319276 delphi non visual component image 如何将我的图标添加
  • 恐慌:拨打 tcp 127.0.0.1:3306:连接:连接被拒绝

    我正在尝试使用 golang gin gorm 从 docker 连接 mysql 服务器 构建本身已经成功 但是如标题所示 出现了以下错误 panic dial tcp 127 0 0 1 3306 connect connection
  • 如何在 Vista 上安装 Delphi 7

    我多次尝试在 Vista 上安装 Delphi 7 但 Vista 告诉我此应用程序 Delphi 7 存在已知问题 从而阻止了我这样做 我公司的其他几个人在 Vista 上安装 D7 时遇到了问题 由此得出的结论是 我们的 D7 应用程序
  • 什么时候 htonl(x) != ntohl(x) ? (或者什么时候在同一台机器上网络字节顺序的转换不等效?)

    关于htonl http linux die net man 3 htonl and ntohl http linux die net man 3 htonl 这两行代码何时计算结果为 false htonl x ntohl x htonl
  • 创建 ip 网络数据包 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我必须使用任何协议手动创建自己的网络
  • net.Socket.writable、net.Socket.readable 属性不是官方 Node.js API 的一部分

    我想知道为什么 net Socket writable 和 net Socket read 属性不是官方 Node js API 的一部分 这是否意味着最好不要使用这些属性 因为它是将来可能会改变的内部内容 它们是 但不是你正在寻找的地方
  • 如何仅在调试模式下激活 ReportMemoryLeaksOnShutdown?

    我需要激活ReportMemoryLeaksOnShutdown报告应用程序内存泄漏的功能 但仅限于调试模式 当 Delphi IDE 运行时 我怎样才能做到这一点 如果您的意思是使用调试构建配置 D2007 编译的 调试模式 则您将定义
  • C# 套接字数据报溢出

    我是 C 新手 我有一个关于udp套接字的小问题 我有一个聊天服务器 它接收特定结构的数据包 udp 数据报 为什么程序在套接字缓冲区已满时才接收数据 难道以后的一切就不应该失去吗 也许会出现数据包碎片 数据包结构 udp headers
  • 是否可以同时读取和写入 java.net.Socket?

    是否可以同时从套接字读取和写入 我有一个连续读取套接字的线程 由于只有一个线程正在从套接字读取数据 因此读取操作是线程安全的 现在我有很多线程 比如100 写入套接字 因此 很明显 我必须通过这样做来使写操作线程安全 package com
  • 如何在 Java 中通过 TLS v.1.2 创建安全的 TCP 连接

    我想通过 TLS v1 2 在两个系统之间创建通信 其中包含的信息是保密的 我想避免 https Web 服务调用 而直接想在 TCP 层执行消息交换 您能否建议如何实现此功能 以便我可以通过 TLS v1 2 安全地传输数据 EDIT 阅

随机推荐