在 TCPServer 连接的线程上引发 POCO 事件
POCO raise event on TCPServer connected threads
我是 Poco 框架的新手,不擅长C++但我正在学习。我必须在窗口中创建一个基于服务器客户端的应用程序。我现在遇到的问题是我需要每分钟重复向客户端发送一些数据。我需要为与服务器具有活动 TCP 连接的客户端执行此操作。我不知道如何创建一个事件,或者在线程中触发并启动所有活动线程以将数据发送到客户端。我的第一个想法是我必须重写或扩展TCPServerDispatcher类。而且我不知道如何从线程池中识别活动线程。
你有什么想法,或者建议,或者教程,什么吗?我不知道该怎么做...
希望有人能给我一个想法,或者一些代码示例。谢谢。
这些服务器<>客户端线程不能为自己获取数据吗? 在每个线程中的 read() 上添加 60 秒的超时并发送数据是相当容易的。 也许这会涉及太多的数据库连接?
如果做不到这一点,您是否可以将最新数据放在可锁定的对象中,并让线程在超时时锁定、写入和解锁最新数据? 这样的解决方案实际上也应该有一个写入超时,以防止行为不良的客户端导致其服务器线程在保持锁时阻塞。 如果它不是太大,我想服务器<>客户端线程可以复制要发送的数据,但我不是复制的忠实粉丝,TBH。
有更复杂的方法可以向服务器<>客户端线程发出新数据可用的信号。很有可能向每个线程发出新数据可用的信号,并让他们"立即"对其采取行动。 这通常意味着服务器<>客户端线程等待多个信号。 通常,延迟越低,解决方案越复杂:(
Rgds,马丁
相关文章:
- POCO::PostgreSQL:如何将std::vector支持添加到`Binder::bind`
- Android NDK传感器向事件队列报告奇怪的间隔
- 从文本文件中读取时钟时间和事件时间并进行处理
- WMI检测进程创建事件-c++
- EvtExportLogneneneba API正在将远程计算机的事件日志保存到远程PC本身.如何将其保存到主机
- 处理闪烁窗口事件
- C++Builder中的OnClick事件签名存在问题
- 跟踪滚动条上的鼠标事件
- 什么是事件表 (wxWidgets)?
- 如何在 MFCaptureEngine 中获取"Camera removed"事件
- 给定顺序中的事件处理
- 当服务中的事件被触发时,如何将响应从服务发送回客户端?
- 在 C++/CLI 中将 .NET 事件从一个 DLL 引发到另一个 DLL
- Poco FindMySql.cmake 无法找到 MySQL 源代码
- 如何创建事件驱动的 SDL2 应用程序
- Windows 进程间同步类似事件?
- 如何从C++端挂接到 QML 项的 onClick 事件
- 如何通过多类"Union variable" (sfml) 使用轮询事件
- 如何在Qt 4.8中阻止/忽略/丢弃早于特定超时的用户输入事件
- 在 TCPServer 连接的线程上引发 POCO 事件