1、当发送大的文件的时候,mSocket->readAll();并不能收取全部的数据包,需要根据文件大小来接收,服务器先发送文件的大小给客户端,再根据文件大小来收取文件
mSocket->readAll();//这个是将TCP整个数据流里面的数据拿出来,如果在整个后面使用recvbytes = mSocket->bytesAvailable();,此时,recvbytes=0;
rdvoice(&msg);
file_size -= recvbytes;
2、文件的读取问题
QFile file;
file.setFileName("./1.wav");
//file.open(QIODevice::WriteOnly |QIODevice::Append); //整个方式,没有办法做到在文件尾部追加数据
file.open(QIODevice::Append);//这里是在文件尾追加数据的方式打开
file.seek(file.size());
file.write(*msg);
file.close();
3、C语言将int转换为char型
sprint(num,”%d”,123);
4.QT动图显示
#include <QMovie>
QMovie *image = new QMovie("./1.jpg");
ui->label_photo->setMovie(image);
image->start();
5、QT中TCP发送结构体
mSocket->write((char *)&client_1,sizeof(client_1)); //发送客户端结构体
6、QT线程的简单使用
1)在.h文件
#include <QThread>
class myThread: public QThread
{
public:
myThread();
void run();
exit_port *w;
};
2)在cpp文件
myThread::myThread() //构造
{
}
void myThread::run()
{
while(1)
{
if(w->finish_send == 1){ //QT的ui显示
w->show_id();
w->show_photo();
w->show();
break;
}
}
}
3)在main.cpp
myThread *thread = new myThread;
thread->w = &w;
thread->start();