当前位置:   article > 正文

Qt网络编程基础——UDP简易通讯_udpserver->writedatagram(ui->udptextedit->toplaint

udpserver->writedatagram(ui->udptextedit->toplaintext().toutf8(),remote_ip_a

首先展示UDP通信中的流程:

一、具体代码展示

1、两端通信只需要通信两端同时使用<QUdpSocket>内提供的socket进行通信即可,无服务器和客户端之分

头文件:

  1. #ifndef UDPSERVER_H
  2. #define UDPSERVER_H
  3. #include <QWidget>
  4. #include <QUdpSocket>
  5. namespace Ui {
  6. class UdpServer;
  7. }
  8. class UdpServer : public QWidget
  9. {
  10. Q_OBJECT
  11. public:
  12. explicit UdpServer(QWidget *parent = 0);
  13. ~UdpServer();
  14. private slots:
  15. void on_pb_send_clicked();
  16. void on_pushButton_3_clicked();
  17. void dealSomething();
  18. private:
  19. Ui::UdpServer *ui;
  20. QUdpSocket *udpSocket;
  21. };
  22. #endif // UDPSERVER_H

具体实现:

  1. #include "udpserver.h"
  2. #include "ui_udpserver.h"
  3. #include <QString>
  4. #include <QByteArray>
  5. UdpServer::UdpServer(QWidget *parent) :
  6. QWidget(parent),
  7. ui(new Ui::UdpServer)
  8. {
  9. ui->setupUi(this);
  10. //显示为通信套接字开辟空间,并指定父对象
  11. udpSocket = new QUdpSocket(this);
  12. setWindowTitle("服务器端口: 8888");
  13. udpSocket->bind(8888);
  14. //当对方成功把数据发送过来
  15. connect(udpSocket, SIGNAL(readyRead()),
  16. this, SLOT(dealSomething()));
  17. }
  18. UdpServer::~UdpServer()
  19. {
  20. delete ui;
  21. }
  22. void UdpServer::on_pb_send_clicked()
  23. {
  24. QString str = ui->te_write->toPlainText();
  25. QString ip = ui->le_ip->text();
  26. quint16 port = ui->le_port->text().toInt();
  27. udpSocket->writeDatagram(str.toUtf8(), QHostAddress(ip), port);
  28. }
  29. void UdpServer::on_pushButton_3_clicked()
  30. {
  31. }
  32. void UdpServer::dealSomething()
  33. {
  34. //接受信息
  35. char buff[1024] = {0};
  36. QHostAddress add;
  37. quint16 port;
  38. qint64 len = udpSocket->readDatagram(buff, sizeof(buff),
  39. &add, &port);
  40. if(len > 0)
  41. {
  42. QString str = QString("[%1:%2] %3").arg(add.toString()).arg(port).arg(buff);
  43. ui->te_read->setText(str);
  44. }
  45. }

二、效果展示:

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/84521
推荐阅读
相关标签
  

闽ICP备14008679号