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

时间:2010-12-23 18:38:05

标签: delphi sockets delphi-2010 tcp

我想在Delphi 2010中使用TCP IP编写一个消息传递系统。我想听听使用标准delphi 2010组件/ indy组件的最佳选择。

我想写一个服务器来监听和转发消息到运行客户端的网络上的所有机器。

1。)a。)客户端可以向服务器发送消息以转发给所有其他客户端     b。)客户端侦听来自其他发件人的消息(通过服务器)并显示消息。

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

感谢任何建议

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

6 个答案:

答案 0 :(得分:4)

如果这只是Windows,并且您不想使用第三方库,则可以跳过TCP / IP并转到Mailslots

编辑:如果您希望保证交付,则命名管道是更好的解决方案。 This SO question有一个few很好的answers,其中包含Delphi命名管道示例。

  

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

他们不需要Windows域,而是通过局域网工作。

DelphiPages有一个很好的run-down on doing IPC in Delphi,包括邮件地址。

- 的Jeroen

答案 1 :(得分:3)

如果你想节省一些工作并使用现成的解决方案:

按上述顺序排列。最后两个列出了信息目的。

IMO 0MQ最好的选择 - 经过精心设计,轻巧,快速,可靠。

答案 2 :(得分:0)

看起来像发布 - 订阅消息传递。 kbmMW提供一个。

答案 3 :(得分:0)

答案 4 :(得分:0)

为了让这个工作可靠地工作比你想象的更多 - 相当于5%的努力使其工作,95%的努力确保它在所有情况下都能工作,包括网络辍学等。如果你去这里({{ 3}})你可以看到我如何实现我的进程间通信框架。 TCP内容包含使用Indy组件的大约10,000行代码。

答案 5 :(得分:0)

关于使用indy,例如在此演示中:indy10clieservr.sourceforge.net或使用TServerSocketTClientSocket

- >现在使用来自INDY的x64演示样本