1.项目需求:
一个客户端,需要从多个站点接收数据,进行保存并显示。站点可动态添加、删除。
2.遇到问题:
a.需要动态添加站点(new QTcpSocket Connect),进行连接,获取数据;
b.连接成功,但接收不到数据。
3.解决方法:
其他代码略。见主要方法:
void ThunderGather::onNewTCPConnect(QString tcpString)
{
QStringList tcpList=tcpString.split(',');//从界面接收IP、Port;
QTcpSocket *tcpSocket1 = new QTcpSocket(this);
tcpSocket1->connectToHost(tcpList.at(0),tcpList.at(1).toUInt());
connect(tcpSocket1, SIGNAL(readyRead()), this, SLOT(readNewTcpData()));
......
}
void ThunderGather::readNewTcpData()
{
QTcpSocket *socket = qobject_cast<QTcpSocket*>(sender());
QByteArray datagram = socket->readAll();
processTheDatagram(datagram);//具体处理流程
}