我们知道传送文件一般使用的是TCP,要是需要使用UDP应该怎么做呢?
对于发端,首先应该在点击事件中得到我们需要发送的文件名,这里是fileName。得到名字之后,新建一个QFile类,来存自己的QFIle文件。每次读8000个字节。这个就是考虑到UDP每个包的大小,如果太大的话是不能放在一个包之中传的,需要放在很多包里面。每次传8000字节,直到读取完毕。
void MainWindow::on_pushButton_clicked()//点击事件
{
QString fileName=QFileDialog::getOpenFileName(this,tr("choose image"),".",tr("Images (*.jpg *.png)"));
qDebug()<<fileName<<endl;
if(fileName.isEmpty()){
return;
}
//加载完图片,需要把这张图片传送出去
localaddr1.setAddress("192.168.0.101");
QFile file;
file.setFileName(fileName);
if(!file.open(QIODevice::ReadOnly)) return;
while(!file.atEnd()){
QByteArray line=file.read(8000);
PicSocket->writeDatagram(line,localaddr1,10004);
}
QByteArray str = "End!";
PicSocket->writeDatagram(str.data(),s