【发布时间】:2014-03-14 01:14:39
【问题描述】:
我正在 Qt 中创建一个简单的 QSocketServer。套接字开始侦听,但incomingConnection 方法似乎从未运行。有人可以解释这里出了什么问题吗?
主要:
m_pipeserver = new PipeServer(this);
if (m_pipeserver->listen("test.sock")) {
qDebug() << "STARTED";
}
pipeserver.h
class PipeServer : public QLocalServer
{
Q_OBJECT
public:
PipeServer(Controller *parent = 0);
protected:
void incomingConnection(qintptr socketDescriptor);
pipeserver.cpp
PipeServer::PipeServer(Controller *parent)
{
}
void PipeServer::incomingConnection(qintptr socketDescriptor)
{
qDebug() << "NEW CONNECTION";
// etc...
我看到 STARTED 消息,但在运行时从未看到 NEW CONNECTION:
socat -v READLINE unix-connect:/tmp/test.sock
谁能告诉我为什么incomingConnection 没有触发?
-- 更新:只是为了好玩,我将一个方法连接到 newConnection 信号中,当我连接时该方法会触发。那么为什么incomingConnection 方法没有触发呢?
【问题讨论】:
标签: c++ qt qtnetwork qt-signals qlocalserver