【问题标题】:How to tell the client has end the connection during IPC using QLocalSocket?如何在使用 QLocalSocket 的 IPC 期间告诉客户端已经结束连接?
【发布时间】:2016-06-06 17:31:45
【问题描述】:

我有两个使用 QLocalSocket 和 QLocalServer 进行 IPC 的程序,我已成功实现连接并成功发送数据。

但是,对于 QLocalServer 端,我如何知道连接已被客户端终止(如客户端程序退出。)?

这样我就可以释放服务器端对应socket的资源了吗?

【问题讨论】:

  • 从断开的套接字读取或通过断开的套接字发送数据会触发错误。
  • 这样,我需要不断地读/写那个套接字。还有其他不需要的方法吗?

标签: c++ qt


【解决方案1】:

您可以将来自 QLocalHost 的 void QLocalSocket::disconnected() 信号连接到您班级中的插槽:

connect(mySocket, &QLocalSocket::disconnected, this, &MyClass::socketDisconnected, Qt::QueuedConnection);

或者您可以连接到 stateChange(更详细的版本),例如:

// Connect like this
connect(mySocket, &QLocalSocket::stateChanged, this, &MyClass::socketNewState, Qt::QueuedConnection);

// Implement a slot that handles the various states...
MyClass::socketNewState(QLocalSocket::LocalSocketState socketState)
{
   qDebug() << "New state is " << socketState << endl;
}

【讨论】:

    猜你喜欢
    • 2023-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-25
    • 2013-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多