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

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
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 虚心请教几个问题,小生先有礼了
  • ¥30 截图中的mathematics程序转换成matlab