• 4030阅读
  • 2回复

网络通讯问题,求解 [复制链接]

上一主题 下一主题
离线daimon0316
 
只看楼主 倒序阅读 楼主  发表于: 2010-06-21
需要写一个网络通讯程序,在服务器端启动UDP监听,等待接收外部的UDP数据包,当收到一个数据包后,如何知道该数据包是从哪个IP和端口发送过来的
博客地址 http://blog.sina.com.cn/daimon0316
离线xtfllbl

只看该作者 1楼 发表于: 2010-06-21
请查看QUdpSocket相关文档
上海欢迎您
离线daimon0316
只看该作者 2楼 发表于: 2010-06-25
参照文档已经解决了。
  1. //读取等待数据包
  2. void MainWindow::readPendingDatagrams()
  3. {
  4.     while (socket->hasPendingDatagrams())
  5.     {
  6.          QByteArray datagram;
  7.          datagram.resize(socket->pendingDatagramSize());
  8.          QHostAddress sender;
  9.          quint16 senderPort;
  10.          socket->readDatagram(datagram.data(), datagram.size(), &sender, &senderPort);
  11.          ui->textEdit_datagram->append(tr("消息来自")+sender.toString()+":"+QString::number(senderPort));
  12.          ui->le_remorthost->setText(sender.toString());
  13.          ui->le_remortport->setText(QString::number(senderPort));
  14. //         socket->readDatagram(datagram.data(), datagram.size());
  15.          processTheDatagram(datagram);
  16.      }
  17. }
博客地址 http://blog.sina.com.cn/daimon0316
快速回复
限100 字节
 
上一个 下一个