问题标签 [qtnetwork]
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++ - QTcpSocket 内存泄漏
我有一个使用 QTcpServer 和 QTcpSockets 的客户端-服务器应用程序设置,并且似乎有一些巨大的内存泄漏。我想知道问题是否出在我使用 Qt 的套接字上,因为我刚刚设置了一个简单的测试应用程序,并且在循环发送 250,000,000 条消息后,我的客户端上升到 75 兆。似乎如果我有几百万条消息,我会看到我的客户端使用了 300+ MB 的内存。
这对我来说似乎不对,因为我一直在发送消息,内存一直在上升!
因此,鉴于连接套接字上的以下代码,我是否应该期望我的应用程序不断增加内存。如果此套接字保持打开状态,我将很快耗尽内存。我错过了什么吗?
c++ - QTcpSocket 的 QThread 没有发出完成的信号
我创建了一个(有点)简单的 telnet 服务器,它为每个连接创建一个新线程:
断开 telnet 客户端后,我希望调用 deleteLater() 插槽。但是,telnet 服务器的 findchildren 显示我的(刚刚断开的)会话的 QThread 对象仍然存在。就好像完成的信号没有发出。
作为一项实验,我将完成的信号与 Qdebug 的“FINISHED”函数联系起来......它永远不会出现。有人可以解释为什么在我断开 telnet 客户端后没有发出完成的信号吗?
我假设调用 thread.disconnectClient() 会终止线程......但也许这是一个不正确的假设?我必须退出线程的 exec 循环吗?
qt - Qt endl 从 linux telnet 看起来很棒,从 windows telnet 看错了
我正在 Qt 中构建一个 telnet 服务器应用程序,当我从 linux telnet 客户端连接时,输出看起来很棒。例如,向我的控制台发送 "A" << endl << "B" << endl << "C" 如下所示:
现在,当我从 Windows telnet 客户端连接时,我看到
显然 Qt 的 endl 只发送 '\n'。有一个简单的解决方案吗?如果我用“\r\n”替换endl,我现在会搞乱linux客户端吗?我也必须强制冲洗吗?
这是我用来发送到我的 telnet 客户端的实际代码:
qt - QT:从网页获取文本内容
我一直在尝试从一个简单的应用程序开始,该应用程序在单击按钮时从一个简单的 HTML 页面中检索数据,并偶然发现了一个关于 QT-Project 的相当有用的教程,并一直在尝试为我自己的项目实现它。
在我尝试实际尝试实现 loadImage 函数(如教程中所示)之前,一切都设法编译。(我实际上必须初始化m_pImgCtrl
为Filedownloader * m_pImgCtrl = new FileDownloader(imageUrl, this);
,我不确定如果没有事先声明对象它应该如何工作?)
据我所知,m_pImgCtrl
实际上并没有在loadImage()
函数中定义,因为它是在函数之外初始化的?还是该connect()
功能做了我不太了解的事情?
谢谢您的帮助!
qt - (QtNetwork) 数据未返回/网络回复为空
作为我之前提出的问题的后续,我现在面临的问题是,即使请求的页面存在(至少来自 Web 浏览器),下载的数据也是空的。
我猜数据实际上是下载的,因为fileDownloaded()
调用了调试行,然后将来自的信号downloaded()
传递到,然后每次单击按钮时都会SLOT(loadText()
打印到控制台"STRING: "
主窗口.h
主窗口.cpp
main.cpp与默认模板保持不变..
再次感谢您的帮助!
c++ - QTcpSocket::connectToHost() 在 Windows XP 上崩溃
我制作了一个将 QTcpSocket 连接到 QTcpServer 的程序,它在 windows 7 上运行良好,但在 windows xp 上它永远不会连接并且程序只是关闭
在 windows xp 上,它永远不会超过第一行。套接字状态从 0 变为 1 再变为 2(套接字已开始建立连接)然后关闭。尝试允许端口 1234 通过防火墙或完全禁用防火墙,但它仍然崩溃。
有人知道如何解决这个问题吗?
javascript - QNetworkReply 不会在 HTML 注释中隐藏 JavaScript
我正在使用 Qt 4.8 发出 HTTP Post 请求。
我应该得到的 HTML 页面在 HTML 注释中隐藏了 Javascript。如果我使用 Firefox/Chrome 查看它或使用 Python3 发出 HTTP 请求,我会以我想要的方式得到带有 Javascript 代码的评论。看起来像这样:
但是,对于 Qt 示例,我只能得到没有 Javascript 的评论。
有没有办法使用 Qt 4.8 来获取 Javascript?
qt - QUdpSocket:如何使多播也可以在本地主机上工作,但防止每个应用程序环回?
我的 Qt 应用程序使用多播QUdpSocket
并且需要半双工操作(它模拟单工无线电台之间的无线电传输)。这意味着一个应用程序实例不能接收它发送的数据报。但它还必须支持在同一台机器上工作多个实例(用户明确选择环回接口)。而且,当然,它应该是可移植的(最坏的情况是 Windows 和 Linux)。
我知道IP_MULTICAST_LOOP
套接字选项和类似的问题:
模拟环回接口上的多播,环回设备上的多播,有没有办法在同一个盒子上测试多播 IP?,如何通过 localhost 使用多播来限制流量,可以将来自不同进程的数据多播到同一主机和端口吗?.
讨论几乎可以回答我的问题,但仍不清楚(主要是因为在我看来,不同平台上的行为有所不同)。
那么我应该如何设置套接字?如果无法通过简单的连接配置来实现它,那么也许使用带有 ReadOnly/WriteOnly 的 connectToHost() 将有助于保证?
更新:
这是我的研究结果,它似乎可以工作,但我不相信它可以在平台和网络配置的任何其他组合上工作,除了我的电脑有:
抱歉格式错误,这是因为我无法赢得烦人的问题
c++ - 绕过 Qt 的模板限制
我想用 C++ 编写一个简单灵活的 ftp 服务器,它可以用一个类参数化来处理服务器初始化时提供的用户(检查登录名和密码,传递文件等)。
所以我想出了这个整洁(所以我想)的想法:
然后(你可能已经看到了)砰!
很可能还有其他错误或误解,因为我才刚刚开始学习 C++ 模板机制(以及 Qt)。
我的问题是:在不使用丑陋的技巧(如传递函数指针或需要为每个具体的 FtpDelegate 的派生类创建工厂实现)的情况下,使其工作的最佳方法是什么。也许有一些我看不到的聪明的设计模式。最终,如果它是最好的选择,我可以重写网络机制来提升。
c++ - 使用 QNetworkAccessManager 从 Web 检索数据:文件已下载但 QNetworkReply::readAll 返回 null
已经有同样的问题,但单一的答案没有帮助:Qt Download File - QNetworkAccessManager, not getting data
所以,我正在尝试下载一个文件:
在onDownloadRequestFinished
插槽中:
插槽打印以下内容:reply 0 0 0 true OpenMode( "ReadOnly" ) true
因此,没有数据。但是,我可以清楚地看到它确实在某处下载了一些东西。这是一个大文件,它确实会下载它,从onDownloadRequestProgress
.
重要说明:几乎相同的代码在同一台计算机上的另一个项目中工作。我试图找到差异,但到目前为止还没有看到。
数据在哪里?