qt TcpSocket编程中奇怪的问题
最近在写一个tcp客户端向服务端发送数据的程序,在测试时每次发送的数据包都是相同的,但是服务器端接收的情况却不尽相同,在首次接收正确后要循环几次才能接收到正确的包,以下是服务端的调试输出信息:listening...
connected...
recerving...
"newdocument.txt"
1
recerving...
"蔀"
30
recerving...
""
0
recerving...
"newdocument.txt"
1
recerving...
"蔀"
30
recerving...
""
0
recerving...
"newdocument.txt"
1
客户端发送的包信息是这样的:
1
"newdocument.txt"
1036
1
"newdocument.txt"
1036
1
"newdocument.txt"
1036
1
"newdocument.txt"
1036
1
"newdocument.txt"
1036
1
"newdocument.txt"
1036
1
"newdocument.txt"
1036
求教,谁知道是怎么回事?我使用的是datastream in来处理接收信息的。 --------------------编程问答-------------------- 发送端代码:
void SendFile::sendMsg(PACKAGE pag)
{
QByteArray block;
QDataStream out(&block,QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_3);
outout(out,pag);
out.device()->seek(0);
cout<<sizeof(pag)<<endl;
clientsocket.write(block);
}
接收端代码:
void receiveServer::acceptConnection()
{
qDebug()<<"connected...";
client = server.nextPendingConnection();
connect(this->client,SIGNAL(readyRead()),this,SLOT(startRead()));
this->client->waitForReadyRead();
this->client->waitForBytesWritten();
/*clientThread* thread = new clientThread(client);
thread->start();*/
}
void receiveServer::startRead()
{
qDebug()<<"recerving...";
QDataStream in(this->client);
in.setVersion(QDataStream::Qt_4_3);
PACKAGE pag;
inin(in,pag);
checkpackage(pag);
} --------------------编程问答-------------------- 没有人吗?在线等! --------------------编程问答-------------------- 我也改的书上的例子,我的数据都是通过quint8类型再转换到字符串的,没出现什么问题
补充:移动开发 , Qt