【问题标题】:Qt UDPsocket readyread() SIGNAL emit twiceQt UDPsocket readyread() SIGNAL 发出两次
【发布时间】:2016-10-04 14:19:45
【问题描述】:

我使用 QUDPsocket 发送消息。我连接: connect(socket,SIGNAL(ReadyRead()),this,SLOT(processPendingDatagrams()));

当我在 main 中调用 sendmessage("123") 时,processPendingDatagrams() 只运行一次。

但是当我在按钮单击事件中调用 sendmessage("123") 时,它会运行两次。如何解决问题?

发送消息():

socket->writeDatagram(data,data.length(),QHostAddress::Broadcast, port);

【问题讨论】:

  • 您是否在同一个应用程序中发送和接收?
  • 不,我在套接字类中收到

标签: c++ qt


【解决方案1】:

如果服务器根据客户端的操作而注意到一次或两次,那么这是客户端的错。

在您的点击事件中,添加如下内容:

qDebug() << "Click event, sending message...";

您可能会注意到它被发送了两次,分别在单击时和释放按钮时。相反,您可以执行以下操作:

connect(myButton, &QPushButton::clicked, [this]() {sendMessage("123");}

或者做你自己的插槽。

【讨论】:

    猜你喜欢
    • 2018-03-24
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多