POCO在TCPServer连接的线程上引发事件

问题描述:

我是Poco框架的新手,但对C++不太好,但我正在学习。我必须在Windows中创建一个基于服务器端的应用程序。 我现在面临的问题是,我需要从一分钟到几分钟重复发送一些数据给客户端。我需要为与服务器有活动tcp连接的客户端执行此操作。我不知道如何创建一个事件或某个线程中触发的事件,并启动所有活动线程将数据发送到客户端。 我的第一个想法是我必须重写或扩展TCPServerDispatcher类。我不知道如何从ThreadPool中识别活动线程。POCO在TCPServer连接的线程上引发事件

你有什么想法,或者可能是建议,或教程,什么? 我不知道如何去做...

希望有人可以给我一个想法,或一些代码示例。谢谢。

这些服务器<>客户端线程能否自己获取数据吗?在每个线程的read()中添加60秒的超时并发送数据相当容易。也许这会涉及太多的数据库连接?

如果失败了,你可以把最新的数据放在一个可锁定的对象中,让线程在超时时间内锁定,写入和解锁最新数据?这样的解决方案实际上也应该有一个写入超时,以防止操作不良的客户端在锁定期间导致其服务器线程阻塞。如果它不是太大,我认为服务器客户端线程可以复制要发送的数据,但我并不是很喜欢复制TBH。

有更复杂的方式向客户端线程发送新数据可用的信号。很有可能发信号通知每个线程新数据可用并让他们立即采取行动。这通常意味着服务器客户端线程正在等待多个信号。一般情况下,延迟越低,解决方案越复杂:(

RGDS, 马丁

+0

好了,数据库连接的数量增加的问题。我需要它不那么频繁越好。 – user583012 2012-07-05 10:05:33