2010-01-13 91 views
3

我正在尝试编写一个服务器和一组与服务器交谈的客户端。服务器将维护不同客户端的状态,并允许他们在状态发生变化时提醒中央服务器。专业客户可以控制其他连接的客户。TIdCmdTCPServer和TIdCmdTCPClient应该一起使用吗?

我有服务器作为TIdCmdTCPServer和客户端(目前)使用TIdTCPClient连接。

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

所以对于这个问题的一般含糊不清,我只是真的开始考虑这个问题,在我陷入细节之前需要一种头脑。

感谢所有帮助

中H

回答

4

这在技术上是可以使用使用TIdCmdTCPClient和TIdCmdTCPServer在一起,但在总体上是不可取的开始。这些组件专为异步处理入站命令而设计。让客户端等待服务器命令是没有意义的,但要让服务器同时等待客户端命令。这是一种阻止连接死锁的好方法,因为它们都在等待来自对方的数据,而且两者都没有先输入任何内容。

+0

因此,我应该将服务器作为TIdCmdTCPServer,然后任何回复或未经请求的消息都应由标准TIdTCPClient处理,如下面的演示链接示例所示。 – Mmarquee 2010-01-22 09:23:36

+0

这实际上取决于您的通信协议的特定设计。 – 2010-01-25 06:31:35

2

也许,你可以通过测试demos

+0

这有帮助,但仍然不是我想要做的。 – Mmarquee 2010-01-22 09:21:18

1

TIdTCPServer在Android(Bug)上没有收到任何东西,android只能将数据从我的tidtcpclient发送到windows TidTCPServer而不是反向。

+0

这应该是一个新问题。同时显示您在Android上从Windows接收的代码,以及实际的错误是什么(超时,例外,...)。 – mjn 2014-03-14 11:03:47