void Server::sendCharacterA()
{
c = "A";
// c = wsFrame[1085];
// const qint16 chType = 1;
QDataStream out(&chA, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_7);
out << (qint16)0;
out << c;
qDebug()<<chA.size();
//qDebug()<<chA;
out.device()->seek(0);
out << (qint16)( chA.size() - sizeof(qint16) );
tcpServerConnection->write(chA);
//recvCharacterA();
//emit characterReturnA(ch)
chA.resize(0);
//connect( tcpServerConnection, SIGNAL(readyRead()), this, SLOT( recvCharacterA()) );
if( tcpServerConnection->waitForReadyRead() == false )
{
return;
}
else
{
recvCharacterA();
}
}
void Server::recvCharacterA()
{
QDataStream in(tcpServerConnection);
in.setVersion(QDataStream::Qt_4_7);
if( blockSize == 0 )
{
//ui->serverStatusLabel->setText(tr("接收字符A函式執行"));
if( tcpServerConnection->bytesAvailable() < (int)sizeof(qint16) )return;
in >> blockSize;
}
//qDebug()<<blockSize;
if( tcpServerConnection->bytesAvailable() < blockSize )return ;
in >> recvChA;
//qDebug()<<recvChA.size();
qDebug()<<recvChA;
qDebug()<<tr("haha");
ui->serverStatusLabel->setText(recvChA);
if( recvChA != c )
{
sendCharacterA();
}
else
{
qDebug()<<tr(" hello");
sendCharacterB();
}
void Server::sendCharacterB()
{
b = "B" ;
QDataStream out(&chB, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_7);
out << (qint16)0<<b;
//qDebug()<<b;
out.device()->seek(0);
out << (qint16)( chB.size() - sizeof(qint16) );
qDebug()<<chB.size();
tcpServerConnection->write(chB);
//chB.resize(0);
//recvCharacterB();
if( tcpServerConnection->waitForReadyRead() == false )
{
return;
}
else
{
recvCharacterB();
}
qDebug()<<tr("QT");
}
void Server::recvCharacterB()
{
// qDebug()<<tr(" nima ");
//QByteArray resultB = sendCharacterB();
QDataStream in(tcpServerConnection);
in.setVersion(QDataStream::Qt_4_7);
if( BblockSize == 0 )
{
if( tcpServerConnection->bytesAvailable() < (int)sizeof(qint16) )return;
in >> BblockSize;
}
if( tcpServerConnection->bytesAvailable() < BblockSize )return ;
in >> recvChB;
qDebug()<<recvChB;
qDebug()<<tr("GG");
if( recvChB != b )//回送的字符與發送的字符是否一致
{
sendCharacterB();
}
else
{
ui->serverStatusLabel->setText( tr("可以發送握手幀"));
sendWsFrame( );
}
//recvChB=0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/107125.html
標籤:網絡及通訊開發
