代码之家  ›  专栏  ›  技术社区  ›  M Schenkel

使用哪种Delphi技术?

  •  5
  • M Schenkel  · 技术社区  · 15 年前

    我有一个用Delphi编写的客户机/服务器应用程序。实际上,应用程序所做的一切就是在服务器应用程序和连接的客户机之间传输xml数据流。我目前正在使用Indy TIdTCPServer组件。但是服务器端应用程序在我的一些分期付款上不断崩溃。调试起来非常困难。因此,我想知道是否有一些“架构”我应该利用它来做所有的tcp/ip连接管理和数据库连接池,让我集中精力在业务逻辑上。

    以下是更多细节:

    • 客户端必须保持“持久”连接。有时服务器必须通知所有连接的客户端并向其发送数据。
    • 后端数据库是SqlServer。
    • 一次最多可以同时连接100台计算机。 当服务器获得一个新连接(TCPServer.OnConnect)时,我实例化我自己的对象,其中包含它自己的SqlServer数据库连接。当tcp连接断开时,我依次释放这些对象(以及相关的数据库连接)。
    • 客户端应用程序中内置了TTimer。他们定期向服务器发送心跳信号。如果他们“断开”/“丢失”了他们的连接,一旦网络恢复,他们就会自动建立一个新的连接。

    有人对这里的最佳方法/架构有什么建议吗?
    我假设Indy组件可以工作,但同时觉得我在管理连接方面“重新发明轮子”。

    6 回复  |  直到 15 年前
        1
  •  6
  •   Marjan Venema    15 年前

    我知道的三个组件集将为您处理客户机-服务器应用程序的基本技术方面:

        2
  •  1
  •   A.Bouchez    15 年前

    如果你想要一些轻TCP/IP组件,看看我们的SynCrtSock单元。

    我们在一个应用程序中实现了TCP/IP和UDP/IP。

    当然,THttpClientSocket类对client类也做同样的操作。

    http://synopse.info/forum/viewforum.php?id=2

    看到了吗 http://synopse.info/fossil/artifact?name=722e896e3d7aad1fe217b0e2e7903483e66d66d1 对于SynCrtSock单元。开源,从Delphi7到Delphi2010。

        3
  •  1
  •   LachlanG    15 年前

    CSI Application Framework 几乎完全符合你的要求。

    它是一个开源的Delphi框架,其核心是一个分布式消息传递和线程框架,允许XML消息从客户机传递到服务器,从服务器传递到客户机。

    它可以处理断开连接/重新连接、高客户端数量,并且有一个可选的虚拟数据库库可以处理SQL server(或者您可以使用现在使用的SQL server访问)。

    它还不是很有名,但我可以告诉你,它在过去几年里得到了积极的发展,作者米莎非常愿意帮助任何有兴趣在他们的应用程序中使用它的人。

        4
  •  1
  •   Wim ten Brink    15 年前


    不过,我不认为这个解决方案适合你,除非你有很多Windows下COM开发的经验和/或你有足够的勇气尝试不同的东西。
    在过去,我遇到过一个类似的问题,数百个客户机必须连接到一个服务器,执行各种数据库事务。它有一个陡峭的学习曲线,但我和我的团队设法让事情工作,一旦我们了解了这项技术,它产生了一个非常稳定和可靠的解决方案,管理有多达500名用户同时进行更新和其他行动在一次极端压力测试。但是,学习的诅咒是巨大的,所以它可能不是你想要的解决方案。
    (尽管如此,COM+仍将使用Windows内置的许多功能,比如事务管理、数据库池等等。)

        5
  •  0
  •   pani    15 年前

    如果使用Indy,每个连接将等于一个线程。

    无论如何,我建议连接到MSSQL使用Devart的SDAC http://www.devart.com/sdac/ 对于连接层,使用基于I/O完成端口的HPScktSrvr http://www.torry.net/authorsmore.php?id=7131 (我不知道更新的VCL中的TThread更改需要做什么更改)。 在THPServerClient周围构建客户机类,将新类设置为server ClientClass,框架将自动为您创建新客户机。

        6
  •  0
  •   Chee Meng    15 年前

    您可能还想看看ICS/Midware组合: http://www.overbyte.be/