繁体   English   中英

Qt UDPsocket readyread()信号发出两次

[英]Qt UDPsocket readyread() SIGNAL emit twice

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

当我在主体中调用sendmessage(“ 123”)时,processPendingDatagrams()仅运行一次。

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

发信息():

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

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

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

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

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

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

或做自己的插槽。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM