TCPServer连接线程上的POCO raise事件 我对PoCO框架很陌生,不擅长C++,但我正在学习。我必须在windows中创建一个基于服务器客户端的应用程序。 我现在遇到的问题是,我需要每分钟反复向客户发送一些数据。我需要为与服务器有活动tcp连接的客户端执行此操作。我不知道如何创建一个事件,或者在一个线程中触发的某个事件,并启动所有活动线程向客户端发送数据。 我的第一个想法是,我必须重写或扩展TCPServerDispatcher类。我不知道如何从线程池中识别活动线程

TCPServer连接线程上的POCO raise事件 我对PoCO框架很陌生,不擅长C++,但我正在学习。我必须在windows中创建一个基于服务器客户端的应用程序。 我现在遇到的问题是,我需要每分钟反复向客户发送一些数据。我需要为与服务器有活动tcp连接的客户端执行此操作。我不知道如何创建一个事件,或者在一个线程中触发的某个事件,并启动所有活动线程向客户端发送数据。 我的第一个想法是,我必须重写或扩展TCPServerDispatcher类。我不知道如何从线程池中识别活动线程,c++,multithreading,events,tcpserver,poco-libraries,C++,Multithreading,Events,Tcpserver,Poco Libraries,你有什么想法,或者建议,或者教程,什么的吗? 我不知道怎么做 希望有人能给我一个想法,或一些代码示例。谢谢。这些服务器客户端线程不能自己获取数据吗?在每个线程中的read()上添加60秒超时,然后发送数据是相当容易的。也许这会涉及太多的数据库连接 否则,您能否将最新数据放入可锁定对象中,并让线程在超时时锁定、写入和解锁最新数据?这样的解决方案实际上也应该有一个写超时,以防止行为不良的客户端在持有锁时导致其服务器线程阻塞。如果不是太大,我想服务器-客户机线程可以复制要发送的数据,但我不太喜欢复制,

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

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

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

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

有更复杂的方式向服务器-客户端线程发送新数据可用的信号。很有可能向每个线程发出新数据可用的信号,并让它们“立即”对其进行操作。这通常意味着服务器客户端线程等待多个信号。通常,延迟越低,解决方案越复杂:(

Rgds,
Martin

好吧,数据库连接数量的增加是个问题。我需要尽可能减少连接的频率。