问题标签 [qtcpsocket]

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 回答
194 浏览

qt - TCP网络通信安全风险

我正在开发一个可以使用 QTcp* 建立服务器-客户端连接的应用程序

客户端向服务器发送一个数字。

检查接收到的字符串的长度和质量(它真的是一个数字吗?)

如果一切正常,则服务器回复文件路径(取决于发送的编号)。

客户端检查文件是否存在以及它是否是有效的图像。如果文件符合规则,则文件执行命令。

这种类型的连接存在哪些安全问题?

该程序是为 Linux 系统设计的,图像文件的外部命令使用 QProcess 执行的。如果发送的字符串包含类似的内容(不要运行以下命令):

那么它将在未找到文件的安全检查中被阻止(因为它不是文件路径)。如果没有对发送的字符串的有效性进行任何检查,则将执行以下命令:

这会引起恐慌!但这不可能发生。

那么,有什么我应该考虑的吗?

0 投票
1 回答
896 浏览

qt - QTcpSocket doesn't receive all data

Hello everyone i did a server and a client, in loaclHost this programms work perfectly but when i change the localHost to my ip the Client no longer receive all the data, so i decide to rewrite the code. here is a part of my new code:

and here is the debug informations:

somebody can help tell my why it does'nt work and how make my client work ?

0 投票
1 回答
244 浏览

c++ - QTcpServer 中的内存泄漏参与不同线程中的连接

我正在 Windows 7 上的 Qt 4.7 中开发 RPC 服务器。为了同时参加多个执行,每个请求都在单独的线程中运行(因为函数可能会阻塞)。我继承自 QTcpServer 并重新实现了incomingConnection 函数,它看起来像这样:

RpcServerConnection 托管数据交换。init 方法如下所示:

一旦接收到所有数据并发送响应,就会发出完成信号。调试我可以看到所有线程和套接字都被删除了。但是,进程内存会随着每个新连接而增加,并且在结束时不会被释放......

从 QTcpServer 继承时,我是否必须释放其他任何东西?

0 投票
1 回答
370 浏览

qt - 并非同一函数中的所有 QMessageBox 都实际显示

这是 C++ 中用于 TCP 客户端-服务器通信的基本 QtCreator 代码的一部分。这应该是我需要开始工作的最后一个功能。但是为了理解它是如何工作的以及错误在哪里,我试图展示一大堆 QMessageBoxes。

当我运行它时,我得到的第一个是“成功”。但我没有得到最后三个中的任何一个(因为 if-else,我希望至少有一个会出现)。所以我在以 return 结尾的“if”语句中放了几个 QMSGBoxes,看看这是否是问题所在,但即使它们也没有出现。

知道为什么会这样吗?提前致谢。

0 投票
0 回答
1015 浏览

multithreading - Write to QTcpSocket fails with different thread error

I have created a simple threaded TCP server which collects 3 lines read from the socket, and then tries to echo them back to the socket. The function echoCommand below crashes.

and here is the file where I connect up the slots/signals:

during or after the socket write, with this error:

Since I create the tcpSocketPtr in the run() function, I know it is in the same thread as this function. Why would the socket write fail? I should point out that the write is succeeding since I see the output on the telnet window...but still the socket write fails...


Just more info...I found that I should NOT put a slot in a QThread..not sure how to get around this, but here is my class definiation:

0 投票
1 回答
428 浏览

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 客户端的实际代码:

0 投票
1 回答
149 浏览

c++ - Qt/C++/Valgrind 在 QTcpSocket 断开连接时无效的读取大小为 8

我在我的 Qt/C++ 程序上运行 valgrind 并收到此错误:

第 188 行是下面的 waitForDisconnected 行:

我不完全确定这个错误意味着什么,但我该如何解决这个问题?或者这是我无法控制的?(一个Qt问题)?

我不确定它是否相关,但我得到的唯一其他错误是:

错误行是下面的 Start():

再次......这个启动功能如何导致内存泄漏?或者“可能丢失”这句话是否意味着它实际上没问题?

0 投票
1 回答
932 浏览

c++ - Qt/C++ QTcpSocket 导致内存泄漏,不知道为什么

我正在创建一个简单的(ish)远程登录服务器,现在正在使用 valgrind 进行调试。代码运行良好,但 valgrind 抱怨程序终止时内存丢失......罪魁祸首是我创建新 QTcpSocket 的行:

我尝试将“this”传递给 QTcpSocket(),但随后我尝试连接的信号槽抱怨与不同的父级关联。这是问题吗?线索?还有……答案是什么?


我通过将 tcpsocketptr 分配为 0 来删除/释放它,如下所示。是对的吗?

0 投票
0 回答
247 浏览

sockets - QDataStream写入大文件

我有一个文件传输应用程序,我正在使用 QDataStream 将从 QTCPSocket 读取的数据写入文件。当我写这篇文章时,我认为 QDataStream 将保持固定大小,但似乎当我从套接字读取并将数据流式传输到我的文件时,我的应用程序的内存稳步上升,我希望流式传输到末尾每个块的文件,因此不必将所有内容保存在 ram 中。

有谁知道我如何写入文件以使我的内存不会稳步增加?

0 投票
0 回答
168 浏览

qt - QTcpSocket会导致windows中句柄增加

我使用 qt4.8.5 和 windows。我使用 QTcpSocket 连接服务器。如果服务器没有打开,那么我会尝试连接它。我的方法是:

我会得到 error() 信号。

我使用计时器尝试连接,它确实调用了 error() 来删除袜子。但是我发现任务管理器中的句柄增加了。它有内存泄漏吗?但我关闭了袜子并使用 deletelater()。更重要的是,socket对象不在主线程中运行。

如果有人知道导致手柄增加的原因,请告诉我。谢谢!