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

但是,对于QLocalServer端,我怎么知道连接是由客户端终止的(就像客户端程序退出一样)?

这样我就可以释放服务器端相应套接字的资源了吗?

最佳答案

您可以将来自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;
}

关于c++ - 如何使用QLocalSocket告诉客户端IPC期间连接已终止?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37663537/

10-10 16:24