问题标签 [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.
c++ - 通过 UDP 发送结构,无需序列化
我想发送一个结构:
通过 QUpdSocket。
我不想序列化它(所以请不要用QDataStream
...回答^^)。
这行得通吗?:
c++ - QUdpSocket 高速率消息读取
大家!
我在使用 QUdpSocket 和 readyRead 信号时遇到了一个奇怪的问题,我可以说它不像我想的那样工作,
我创建了一个 QUdpSocket 并将其绑定到某个端口,将 readyRead 信号连接到我的插槽,然后读取所有待处理的数据报,如下所示
和我的 readBuffers 代码
我认为使用 Qt::QueuedConnection 解决了我的问题,但今天我在我的项目中添加了另一个小部件,并每 100 毫秒更新一次。我不知道怎么回事,但我的插槽在 2 秒后不再发出信号。
如果我将定时器间隔或发送数据速率更改为 1 秒,一切都很好。
我所有的类和我的小部件都在主程序的线程中,我不使用另一个线程,但似乎我应该!
那么为什么 Qt 事件循环会丢弃信号呢?
我检查了我的套接字状态,它在 Bound 之后没有改变。
提前致谢
qt - QUdpSocket 客户端-服务器远程主机不可连接
我已经看到很少有关于我的问题的帖子,但是,我似乎仍然无法解决问题,而且回复还不够。所以这是任务:我有 2 台 PC。一台必须传输 100 个 udp 数据包,带有一个简单的测试数据,另一台机器必须读取数据报。我的代码如下:
服务器:
m_socket.udp = new QUdpSocket(this);
所以...首先 - 绑定到机器 1 的 IP 失败。我不能指定它的 IP。
客户端很简单:
因此,在wireshark 中查看的客户端代码会出现在我的服务器机器上。但是我的服务器 Qt 代码让我失望了。这里有什么帮助吗?
qtcpserver - 我可以使用 QUdpSocket 连接 QTcpServer 吗?
我是网络世界的超级新手,所以我有一个 QTcpserver 目前正在使用 newConnection 信号,但我想知道我是否可以将 QUdpSocket 与 QTcpServer 一起使用?这有可能吗?
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.
qt - QUdp 套接字停止在 QT 中接收数据包?
我编写了代码来从源接收 UDP 数据包。一开始它工作得很好。在接收到'n'个数据包后,它会停止接收来自连接的 ip 和端口的数据包。注意:我已经检查过 udp 套接字已经在使用并且缓冲区没有溢出。
c++ - 调用 qt udpsocket flush 有用吗?
我正在使用 QUdpSocket 将参考数据写入机器人。我希望传输尽可能实时。这是我现在正在做的事情:
定时器以 50Hz 触发上述代码。在这种情况下是否有必要flush
在 writeDatagram 调用之后调用?
c++ - 如何在非 gui 线程上正确创建 QUdpSocket?Readyread 未发出
我正在编写一个包含以下内容的网络库QUdpSocket
:
- 创建一个新的
QUdpSocket
. - 连接到它的
readyRead
信号。 readDatagram
提出时调用readyRead
。
当我使用 Qt GUI 应用程序中的库时,一切正常。
当另一个用户包含在 Qt GUI 应用程序之外使用的库时,问题就开始了。
他调用addConnection
(创建套接字并调用 connect readyRead
)
调用的线程addConnection
是非 Qt。
addConnection
似乎成功结束,但从未readyRead
发出。
调用 read(即使没有readyRead
发出)会导致成功的数据报读取。
无效的修复:
将 UDP 套接字线程移动到 this->thread
/li>我试图通过调用来模拟问题:void
这也导致了与用户对我的库的相同症状,这意味着
readyRead
没有发出。QSignalSpy
- 我已经激活了对readyRead
信号的间谍;尽管我可以直接从套接字读取数据,但计数器一直为零。当使用套接字在主线程上初始化时,间谍给出了有效的结果(即进展)。
我的问题:
- 我错过了什么,做错了什么?
- 即使不是在主 GUI 线程上创建发出的最简单的方法是什么
readyRead
- 我找不到任何在没有 GUI 或外部 Qt 线程的情况下工作的示例。
c++ - 如何在 Qt 中制作 UDP“客户端”,以便他从服务器接收数据?
因此,UDP 服务器显然只是侦听某个端口并处理带有源 IP 和 PORT 的字节数组:
非常好。这实际上有效,正如我使用这个 python 片段验证的那样:
字节数组甚至包含“PING”。所以我正要写一个客户端。我假设客户端将简单地使用QUdpSocket::sendDatagram
. 但是他怎么能收到数据呢?
首先我想我会打电话bind(SERVER_ADDRESS_HERE, 6660)
。但显然他们不能都在同一个端口上监听。
那么如何为上面的服务器编写一个客户端呢?
qt - QUdpSocket 在没有绑定的情况下无法工作
我必须通过 UDP 与某些设备通信。问题是QUdpSocket在没有特殊情况的情况下根本不起作用bind()。我使用connectToHost()方法来访问 read()/write() 函数。
使用代码时UDP交换根本不起作用:
我没有收到任何字节。Wireshark 中的消息:
下面的代码也不起作用:
只有此代码有效:
但该代码仅在 Qt 5.6.2 中有效,在 Qt 5.4.2 中无效。这是我尝试接收的方式:
为什么行为如此奇怪?这怎么能理解?