|
1Qter豆
我在tcpserver里侦听了本地的一个端口,然后用newConnection去判断有没有client连接,如果有,把标志位拉高,然后我想隔一段时间就在tcpserver里发一串数据给我的client,我是这样写的
tcpServer = new QTcpServer(this);
if(!tcpServer->listen(QHostAddress:ocalHost, 95878))
{
//侦听本地主机的6666端口,如果出错就输出错误信息,并关闭
qDebug() << "tcpserver" <<tcpServer->errorString();
}
//连接信号和相应槽函数
qDebug() << "listin 95878 success";
connect(tcpServer, SIGNAL(newConnection()), this, SLOT(newclientSlot()));
qDebug() << "connect 95878 success";
void myTcpServer::newclientSlot()
{
qDebug() << "have a new connect";
isClient = true;
}
void myTcpServer::sendData(struCseSensor * sensordata)
{
qDebug() << "sendMessage ing";
//用于暂存我们要发送的数据
QByteArray myBlock;
myBlock.resize(sizeof(struCseSensor));
memcpy(myBlock.data(), &sensordata, sizeof(struCseSensor));
qDebug() << "cpydata success";
//获取已经建立的连接的子套接字
if(isClient)
{
QTcpSocket *clientConnection = tcpServer->nextPendingConnection();
clientConnection->write(myBlock);
}
//发送数据成功后,显示提示
qDebug() << "send data success";
}
现在的问题是,我的client能够收到一次server的数据,但是,第二次执行到红色加粗部分的时候,就报错,说"The remote host closed the connection" 。
求qter帮助~
先谢谢啦。
|
|