Qt UDPsocket readyread()SIGNAL发出两次

时间:2016-06-04 16:37:59

标签: c++ qt

我使用QUDPsocket发送消息。我连接:  连接(插座,SIGNAL(ReadyRead()),对此,SLOT(processPendingDatagrams()));

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

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

的SendMessage():

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

1 个答案:

答案 0 :(得分:0)

如果服务器根据客户端的操作通知一次或两次,那么它就是客户端的错误。

在点击事件中,添加以下内容:

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

您可能会注意到它已经发送两次,点击按下并释放按钮时。相反,你可以做类似的事情:

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

或者做自己的插槽。