问题标签 [qudpsocket]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2749 浏览

qt - 如何指定 QUdpSocket 使用的网络接口?

我有一个QUdpSocket用于发送广播数据包的应用程序。发送数据包的机器有几个网络接口。

不幸的是,我无法弄清楚如何QUdpSocket使用正确的网络接口。是否有一个选项可以让我准确指定用于发送数据包的接口?

0 投票
1 回答
405 浏览

c++ - 如何使用 QUdpSocket 连接路由器后面的服务器和客户端?

假设我有一个直接连接到互联网的服务器和一个连接到路由器的客户端。客户端可以向服务器发送消息,因为它知道服务器的 IP 地址和端口。但是服务器如何将消息发送回客户端呢?它可以获取客户端的外部 IP 地址和端口,但它应该向该端口发送消息吗?客户端如何监听消息,它应该监听哪个端口?假设没有端口转发。

0 投票
2 回答
2309 浏览

c++ - How do I know the sending port number in QUdpSocket?

Is there a way I can get the port number the udp socket used to send message?

What I want to do is to send a udp datagram to someone and listen to that sending port.

For example in the following code:

does it automaticly binds socket s with whatever the sending port is?

If so, can I listen to that sending port?

0 投票
1 回答
187 浏览

qt - QUdpSocket 心跳行为

我需要每秒通过 Upd 套接字发送我的 Qt 应用程序的状态。我怎样才能做到这一点?我应该使用 QThread::sleep 子类 QThread e 还是有最好的方法?谢谢

0 投票
1 回答
52 浏览

android - 服务块 eì 应用程序执行

您好,我的服务有问题。我正在制作一个实现 UDPServer 并登录主要活动接收到的数据包的应用程序。我希望即使活动关闭也能启动服务,所以我认为我必须使用服务。这是真的吗?我已经实现了一个应用程序可以毫无问题地实现音乐播放器服务,但是当在服务 onStart 函数中插入 UDP 服务器的代码时,我的应用程序崩溃了。这是关于udp服务器的代码:

我认为问题出在命令上:

它阻止执行并等待读取内容。我希望主程序不会阻止等待服务。

我尝试在服务中插入超时和睡眠命令,但没有任何结果:

谢谢!

0 投票
1 回答
1504 浏览

qt5 - QT 5.0 Qudpsocket 不会触发 waitforbyteswritten

我已经绑定了一个 udp 套接字,我正在尝试为特定地址编写一个 udp 数据报,所以这是我的代码:

变量 dest 是 QString,但是在我调用 socket->writeDatagram 之后,它进入下面的 if 就好像它失败了,但实际上字节被写入(然后我接收)并发出 byteswritten 信号。那么为什么要进入 if 子句呢?

ps(我将 ip dest 测试为 127.0.0.1)并且 socket->errorString() 打印“未知错误”

0 投票
0 回答
591 浏览

qt - 从单个发出语句多次调用 Qt5 插槽

我对 Qt 比较陌生,但我做了一些搜索。我有一个处理 UDP 广播的基类,并在类的构造函数中执行连接语句,如下所示:

我为广播设置了一个信号/插槽接口:

broadcast_message看起来像这样:

我的计时器运行良好,代码如下:

我只收到一次文本“向服务器发送一品脱”,但我的 broadcast_message 输出它qDebug()多次。

我没有明确地使用多个线程,正如你所看到的,我正在使用 Qt::UniqueConnection,这显然没有影响?

那么为什么会多次调用该插槽?我什至尝试过调试它,只调用 this->broadcast( ... ) 而不使用 emit,它仍然会被多次调用。

编辑:我刚刚在插槽中添加了一个计数器broadcast_message,它被调用了 340 次。这有什么意义吗?

0 投票
0 回答
509 浏览

qt - QUdpSocket 发送格式错误的数据包

我正在设置一个 QUdpSocket 广播器。当我在 Wireshark 中查看输出时,它说我的数据包格式错误。检查数据包,似乎它们不是用以太网预告片发出的。我需要自己发出这个,还是你看到另一个问题?我下面的代码略微浓缩。请注意,如果通过交叉电缆连接,我的接收设备(微控制器)确实会看到并响应数据包(如在 wireshark 上看到的)。我想确保我没有格式错误的帧,因此我可以在允许 UDP 流量的交换网络上使用它。

谢谢

和wireshark的输出

注意最后四个字节对应我发送的数据,5A 5A 02 03。

根据谷歌图片搜索,数据包缺少预告片......虽然我不是网络专家,这完全是猜测。

Windows 7 x64、VS2010、QT 4.8-latest x64

0 投票
2 回答
9691 浏览

qt - QUdpSocket:如何使多播也可以在本地主机上工作,但防止每个应用程序环回?

我的 Qt 应用程序使用多播QUdpSocket并且需要半双工操作(它模拟单工无线电台之间的无线电传输)。这意味着一个应用程序实例不能接收它发送的数据报。但它还必须支持在同一台机器上工作多个实例(用户明确选择环回接口)。而且,当然,它应该是可移植的(最坏的情况是 Windows 和 Linux)。

我知道IP_MULTICAST_LOOP套接字选项和类似的问题:
模拟环回接口上的多播,环回设备上的多播,有没有办法在同一个盒子上测试多播 IP?,如何通过 localhost 使用多播来限制流量,可以将来自不同进程的数据多播到同一主机和端口吗?.

讨论几乎可以回答我的问题,但仍不清楚(主要是因为在我看来,不同平台上的行为有所不同)。
那么我应该如何设置套接字?如果无法通过简单的连接配置来实现它,那么也许使用带有 ReadOnly/WriteOnly 的 connectToHost() 将有助于保证?
更新:

这是我的研究结果,它似乎可以工作,但我不相信它可以在平台和网络配置的任何其他组合上工作,除了我的电脑有:

抱歉格式错误,这是因为我无法赢得烦人的问题

0 投票
1 回答
3162 浏览

qt - 无法从 QUdpSocket 客户端读取

我向系统发送命令并从中读取响应。我的机器是客户端,我成功向服务器写入了一个数据包,但是我无法收到它的响应。我想知道为什么会这样,请看一下我的代码:(服务器地址是192.168.100.143,端口是11000)