我有一个用Delphi2006编写的经典的客户机/服务器(胖客户机和数据库)程序。当客户端满足某些条件时,我需要非常迅速地通知所有其他客户端。到目前为止,这是使用UDP广播完成的,但这不再可行,因为客户端现在从LAN外部连接,并且UDP广播仅限于本地网络。
我知道Indy库,但不太确定要使用哪些组件以及如何构建它。我猜我需要有一个客户端连接的服务器,它将接收和分发消息...?有没有样品可以让我开始呢?
还有没有其他组件集或技术我也应该看看呢?
发布于 2008-09-12 10:36:01
简单的答案是,Delphi (和其他工具)中可用的标准协议不允许反向通知。在我想使用SOAP的一个项目中,我对此进行了研究。它们都假设客户端请求服务器,服务器响应,仅此而已。
对我来说,解决方案是RemObjects SDK。这允许您向客户端发送通知,并且通知可以包含您喜欢的任何数据(就像客户端到服务器一样)。我自己使用SuperTCP连接,但它也可以与其他人一起工作。它仍然可以为必须使用它的客户端提供SOAP接口,但在您可以同时控制客户端和服务器的情况下,它工作得非常好。
发布于 2008-09-12 17:24:16
有一些非常简单的方法可以用RemObjects做到这一点,尽管我确信Delphi SDK也能很好地工作。
显然,实现的选择将取决于您的设置和需求。为了达到最好的效果,有必要进行调整。
您需要的组件是TIdTCPServer (侦听器)和TIdTCPClient (发送器)。这两个都在Delphi的Indy库中。
发布于 2008-09-15 18:59:56
来自http://www.overbyte.be的ICS组件非常棒。a.)兼容性比Indy b更好。)PostCard是一个很好的例子和支持。使用TClientSocket和TServerSocket
https://stackoverflow.com/questions/58618
复制相似问题