• 5835阅读
  • 5回复

如何发送文件 [复制链接]

上一主题 下一主题
离线weilong122
 

只看楼主 倒序阅读 楼主  发表于: 2006-05-05
void Sender::SendMessage()
{
QByteArray datagram;
message = dialogEdit->toHtml();
QDataStream out(&datagram,QIODevice::WriteOnly);
flag = 0;
out << flag;
out << message ;
showEdit->append(message);
send_Socket->writeDatagram(datagram.data(), qint64(datagram.size()),
          QHostAddress("127.0.0.1"), 5050);
dialogEdit->clear();
}

void Sender::RecMessage()
{
while (receive_Socket->hasPendingDatagrams())
  {
    int flag;
    QByteArray datagram;
    datagram.resize(receive_Socket->pendingDatagramSize());
    receive_Socket->readDatagram(datagram.data(), datagram.size());
   
    QDataStream in(&datagram, QIODevice::ReadOnly);
    in >> flag;
    if(flag == 0) //flag是标志,0 表示接收的是普通的信息, 1   表示接收的是文件
    {
      in >> message;
      showEdit->append(message);
      continue;
    }
   
    else
    {
      in >> fileName;
      QFile file(fileName);
      QByteArray filecontent;
      in >> filecontent;

      if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) //以只写的方式打开文件
        return;
       
      QTextStream out(&file);
      out << filecontent;
    }//else
 
}//while
}


void Sender::openFile()
{
fileName = QFileDialog::getOpenFileName(this,tr("Open File"), QDir::currentPath());
  //获得要打开的文件名
  sendfile = new QFile(fileName);//声明一个指向该文件的指针
 
  if(sendfile->open(QIODevice::ReadOnly))
  {              
    fileData = sendfile->readAll();
   
    emit DataReady();
         
  }
  else
  {
    QMessageBox::about(this,tr("错误"),fileName);
  }  

}


void Sender::SendFile()
{
QByteArray datagram;
int flag = 1;
QDataStream out(&datagram,QIODevice::WriteOnly);
out << flag;              
out << fileName;
out << fileData;
send_Socket->writeDatagram(datagram.data(), datagram.size(),
            QHostAddress("127.0.0.1"), 5050);
             
}
=====================================================

我的意图是两客户端间通信,发送消息或传送文件
消息发送已经初步完成
但文件发送不能实现
求达人指点
先谢了
[ 此贴被XChinux在2006-05-07 22:30重新编辑 ]
离线weilong122

只看该作者 1楼 发表于: 2006-05-06
各路大仙,求求你们了
给点意见吧
谢谢了
郁闷ING
离线gable
只看该作者 2楼 发表于: 2006-05-09
这里高手少阿,我也遇到和搂住一样的问题
离线weilong122

只看该作者 3楼 发表于: 2006-05-09
哎。。。。。。。。。。。。。。。。。。。。。
离线weilong122

只看该作者 4楼 发表于: 2006-05-09
奇怪了
居然又可以发送了
但是中文的txt文件发送后,接收到的文件里,开头的位置有几乱码
不知道是什么缘故?

还有就是谁可以告诉我如何传象rar ,mp3等二进制文件呢?
谢谢了先!
离线gable
只看该作者 5楼 发表于: 2006-05-10
哥们,咱们做的东西差不多,我要做一个发送视频的,加我吧,QQ18049453,咱们交流下
快速回复
限100 字节
 
上一个 下一个