weixin_39553924 2018-07-13 08:57 采纳率: 0%
浏览 1955
已结题

qt tcp通讯,server端无法进入incomingConnection函数

自己写了一个类继承QTcpServer,重写里面的incomingConnection函数,但是当有新的客户端连接的时候无法进入这个函数。
头文件
```class TcpServerManager : public QTcpServer
{
Q_OBJECT

public:
TcpServerManager(QObject parent);
~TcpServerManager();
QList<TcpSocketManager
> mSocketList;
void ReadUserInfo();
public slots:
void ServerNewConnection();
void ServerReadData();
void slotclientdisconnect(qintptr descriptor);
void sliotupdateserver(QString, int);
private:
QTcpSocket mp_TCPSocket;
QTcpServer
mp_TCPServer;
std::map mMapUserInfo;
protected:
virtual void incomingConnection(qintptr socketDescriptor);
};

cpp



TcpServerManager::TcpServerManager(QObject *parent)
: QTcpServer(parent)
{
ReadUserInfo();
mp_TCPServer = new QTcpServer();
mp_TCPSocket = new QTcpSocket();
if (!mp_TCPServer->listen(QHostAddress::Any, 9988))
{
QMessageBox::warning(NULL, QString::fromLocal8Bit("提示"), QString::fromLocal8Bit("服务器端监听失败!"), QMessageBox::Yes);
return;
}
//connect(mp_TCPServer, SIGNAL(newConnection()), this, SLOT(ServerNewConnection()));
}

TcpServerManager::~TcpServerManager()
{

}

void TcpServerManager::incomingConnection(qintptr socketDescriptor)
{
TcpSocketManager *tcpclientsocket = new TcpSocketManager(this);
tcpclientsocket->setSocketDescriptor(socketDescriptor);
mSocketList.append(tcpclientsocket);
connect(tcpclientsocket, &TcpSocketManager::clientdisconnected, this, &TcpServerManager::slotclientdisconnect);
connect(tcpclientsocket, &TcpSocketManager::updateserver, this, &TcpServerManager::sliotupdateserver);
}


  • 写回答

1条回答 默认 最新

  • devmiao 2018-07-13 15:18
    关注
    评论

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?