0

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

你有什么想法,或者建议,或者教程之类的吗?我不知道该怎么做...

希望有人能给我一个想法,或者一些代码示例。谢谢你。

4

1 回答 1

0

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

如果做不到这一点,您能否将最新数据放入可锁定对象中,并让线程在超时时锁定、写入和解锁最新数据?这样的解决方案实际上也应该具有写入超时,以防止行为不端的客户端导致其服务器线程在持有锁时阻塞。如果它不是太大,我想服务器 <> 客户端线程可以复制要发送的数据,但我不太喜欢复制,TBH。

有更复杂的方法可以向服务器<>客户端线程发出新数据可用的信号。很有可能向每个线程发出新数据可用的信号并让它们“立即”对其采取行动。这通常意味着服务器<> 客户端线程等待多个信号。一般来说,延迟越低,解决方案就越复杂:(

Rgds,马丁

于 2012-07-05T10:00:23.317 回答