问题标签 [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 投票
1 回答
113 浏览

c++ - 通过 UDP 发送结构,无需序列化

我想发送一个结构:

通过 QUpdSocket。

我不想序列化它(所以请不要用QDataStream...回答^^)。

这行得通吗?:

0 投票
1 回答
889 浏览

c++ - QUdpSocket 高速率消息读取

大家!

我在使用 QUdpSocket 和 readyRead 信号时遇到了一个奇怪的问题,我可以说它不像我想的那样工作,

我创建了一个 QUdpSocket 并将其绑定到某个端口,将 readyRead 信号连接到我的插槽,然后读取所有待处理的数据报,如下所示

和我的 readBuffers 代码

我认为使用 Qt::QueuedConnection 解决了我的问题,但今天我在我的项目中添加了另一个小部件,并每 100 毫秒更新一次。我不知道怎么回事,但我的插槽在 2 秒后不再发出信号。

如果我将定时器间隔或发送数据速率更改为 1 秒,一切都很好。

我所有的类和我的小部件都在主程序的线程中,我不使用另一个线程,但似乎我应该!

那么为什么 Qt 事件循环会丢弃信号呢?

我检查了我的套接字状态,它在 Bound 之后没有改变。

提前致谢

0 投票
2 回答
719 浏览

qt - QUdpSocket 客户端-服务器远程主机不可连接

我已经看到很少有关于我的问题的帖子,但是,我似乎仍然无法解决问题,而且回复还不够。所以这是任务:我有 2 台 PC。一台必须传输 100 个 udp 数据包,带有一个简单的测试数据,另一台机器必须读取数据报。我的代码如下:

服务器:

m_socket.udp = new QUdpSocket(this);

所以...首先 - 绑定到机器 1 的 IP 失败。我不能指定它的 IP。

客户端很简单:

因此,在wireshark 中查看的客户端代码会出现在我的服务器机器上。但是我的服务器 Qt 代码让我失望了。这里有什么帮助吗?

0 投票
1 回答
96 浏览

qtcpserver - 我可以使用 QUdpSocket 连接 QTcpServer 吗?

我是网络世界的超级新手,所以我有一个 QTcpserver 目前正在使用 newConnection 信号,但我想知道我是否可以将 QUdpSocket 与 QTcpServer 一起使用?这有可能吗?

0 投票
1 回答
760 浏览

qt - QUdpSocket reading issue

I have an issue when I receive data from a UDP client. The code that I used is:

The problem is that in Wireshark I receive this data (all the data):

But at the console output of my application I receive this trunkated data:

You can see that only the first part of data "58bf80" is received. It seems that the datagram no has any limitation, and the socket runs fine. I don't see what may be happening.

Thanks in advance.

0 投票
1 回答
302 浏览

qt - QUdp 套接字停止在 QT 中接收数据包?

我编写了代码来从源接收 UDP 数据包。一开始它工作得很好。在接收到'n'个数据包后,它会停止接收来自连接的 ip 和端口的数据包。注意:我已经检查过 udp 套接字已经在使用并且缓冲区没有溢出。

0 投票
2 回答
536 浏览

c++ - 调用 qt udpsocket flush 有用吗?

我正在使用 QUdpSocket 将参考数据写入机器人。我希望传输尽可能实时。这是我现在正在做的事情:

定时器以 50Hz 触发上述代码。在这种情况下是否有必要flush在 writeDatagram 调用之后调用?

0 投票
2 回答
2301 浏览

c++ - 如何在非 gui 线程上正确创建 QUdpSocket?Readyread 未发出

我正在编写一个包含以下内容的网络库QUdpSocket

  1. 创建一个新的QUdpSocket.
  2. 连接到它的readyRead信号。
  3. readDatagram提出时调用readyRead

当我使用 Qt GUI 应用程序中的库时,一切正常。

当另一个用户包含在 Qt GUI 应用程序之外使用的库时,问题就开始了。

他调用addConnection (创建套接字并调用 connect readyRead

调用的线程addConnection是非 Qt。

addConnection似乎成功结束,但从未readyRead发出。

调用 read(即使没有readyRead发出)会导致成功的数据报读取。

无效的修复:

  1. 将 UDP 套接字线程移动到 this->thread

    /li>
  2. 我试图通过调用来模拟问题:void

    这也导致了与用户对我的库的相同症状,这意味着readyRead没有发出。

  3. QSignalSpy- 我已经激活了对readyRead信号的间谍;尽管我可以直接从套接字读取数据,但计数器一直为零。当使用套接字在主线程上初始化时,间谍给出了有效的结果(即进展)。

我的问题:

  1. 我错过了什么,做错了什么?
  2. 即使不是在主 GUI 线程上创建发出的最简单的方法是什么readyRead- 我找不到任何在没有 GUI 或外部 Qt 线程的情况下工作的示例。
0 投票
1 回答
3749 浏览

c++ - 如何在 Qt 中制作 UDP“客户端”,以便他从服务器接收数据?

因此,UDP 服务器显然只是侦听某个端口并处理带有源 IP 和 PORT 的字节数组:

非常好。这实际上有效,正如我使用这个 python 片段验证的那样:

字节数组甚至包含“PING”。所以我正要写一个客户端。我假设客户端将简单地使用QUdpSocket::sendDatagram. 但是他怎么能收到数据呢?

首先我想我会打电话bind(SERVER_ADDRESS_HERE, 6660)。但显然他们不能都在同一个端口上监听。

那么如何为上面的服务器编写一个客户端呢?

0 投票
2 回答
2337 浏览

qt - QUdpSocket 在没有绑定的情况下无法工作

我必须通过 UDP 与某些设备通信。问题是QUdpSocket在没有特殊情况的情况下根本不起作用bind()。我使用connectToHost()方法来访问 read()/write() 函数

使用代码时UDP交换根本不起作用:

我没有收到任何字节。Wireshark 中的消息:

Wireshark 中的 QUdpSocket 错误

下面的代码也不起作用:

只有此代码有效:

但该代码仅在 Qt 5.6.2 中有效,在 Qt 5.4.2 中无效。这是我尝试接收的方式:

为什么行为如此奇怪?这怎么能理解?