【发布时间】:2014-08-16 12:01:31
【问题描述】:
我想将数据从特定位置(共享内存)传递到客户端应用程序。一个线程不断地轮询 SHM 以获取新数据,一旦它得到一些东西,它就会将它传递给客户端。
可能有多个此类客户端应用程序实例将连接到我的 (QTcpServer) 服务器。
我计划在每次我的服务器接收到新连接时创建一个新的QTcpSocket,并将所有这些套接字存储在一个向量中。稍后,在每次成功轮询时,我会将数据写入存储在向量中的所有QTcpSocket。
但是如果客户断开连接(关闭他的窗口),我需要知道它!否则,我将继续写信给不再存在并最终崩溃的QTcpSocket。
这里的解决方案是什么?
QTcpServer 类中只有 2 个信号:
Signals
void acceptError(QAbstractSocket::SocketError socketError)
void newConnection()
2 signals inherited from QObject
【问题讨论】:
-
您的套接字上需要某种形式的TCP keep alive
-
是的,知道在 Qt 中怎么可能没有吗?
标签: c++ qt networking tcp network-programming