2011-05-24 24 views
1

大家好〜
我有个问题要解决〜
我已经创建了一个服务器,每个人都可以连接到这台服务器。
服务器的功能是为了将消息从一个客户端传输到另一个客户端。
我不知道其他客户端何时将消息发送给客户端。
我使用Delphi-7来开发程序。
我没有找到任何TCPClient对象来侦听TCPServer发送的消息。
请给我你的观点〜谢谢:)关于TCPClient从TCPServer接收数据问题

+0

你已经在标题中提到了一个问题,但是在你的文章中没有问题。从你的描述来看,听起来你正在寻找一个适用于Delphi 7的TCP/IP组件。如果是这样,那么试着看看[这篇文章](http://stackoverflow.com/questions/5709127/wiki-current-状态的最先进的 - 的 - 的Delphi-第三方-TCP-IP组件的库)。 – 2011-05-24 08:52:41

+1

哦〜对不起,我解释我的问题含糊不清。我的问题是,我不知道TCPServer何时将消息发送到TCPClient,因为客户端不知道其他客户端何时将消息发送给您,所以我不知道TCPClient何时收到数据。感谢您的回复〜 – solar 2011-05-24 09:00:16

+0

如果您正在讨论从服务器接收响应,您可以调用Indy函数来接收响应。它们都是阻塞的,因此只有在收到响应后(或发生超时),它们才会返回。 Indy以这种方式为你处理所有的时机。 – jpfollenius 2011-05-24 10:04:03

回答

1

服务器不启动与客户的对话。如果您的消息客户端尚未与服务器建立开放连接,并且服务器需要通知客户端它有消息,则客户端程序需要具有服务器组件,以便它可以侦听新消息来自消息服务器的连接。

一种替代方法是让客户端保持持久连接与服务器打开。当消息到达时,服务器可以向相应的客户端发送通知,因为它已经打开了连接,并且客户端正在等待来自服务器的响应。