问题标签 [qtcpserver]

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

qt - QTcpServer 同步连接

我试图使用QTcpServer的同步连接机制来实现一个服务器。我的代码非常简单。PFB。

//主要的

我正在尝试从 Linux 客户端应用程序(C)连接到服务器。不幸的是,我的服务器没有任何连接。我需要做其他事情来处理同步连接吗?提前致谢

netstat 的 PFB 结果

网络统计 -np TCP

活动连接

原始本地地址外国地址状态

TCP 127.0.0.1:62908 127.0.0.1:62909 已建立

TCP 127.0.0.1:62909 127.0.0.1:62908 已建立

TCP 192.168.70.89:62817 10.47.1.10:49224 已建立

TCP 192.168.70.89:62924 10.47.1.101:3128 已建立

TCP 192.168.70.89:63209 10.47.1.101:3128 TIME_WAIT

TCP 192.168.70.89:63213 10.47.1.101:3128 TIME_WAIT

TCP 192.168.70.89:63264 10.47.1.101:3128 TIME_WAIT

TCP 192.168.70.89:63265 10.47.1.101:3128 TIME_WAIT

TCP 192.168.70.89:63266 10.47.1.11:8014 CLOSE_WAIT

TCP 192.168.70.89:63267 111.221.112.54:995 TIME_WAIT

TCP 127.0.0.1:62908 127.0.0.1:62909 已建立

0 投票
1 回答
194 浏览

qt - TCP网络通信安全风险

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

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

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

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

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

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

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

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

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

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

0 投票
1 回答
244 浏览

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

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

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

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

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

0 投票
0 回答
247 浏览

sockets - QDataStream写入大文件

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

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

0 投票
1 回答
388 浏览

c++ - 有和没有事件循环的线程之间的区别

带有事件循环的线程

我们在一个单独的线程中创建了一个 QTcpServer 对象,它正在侦听传入的连接并在它们发生时对其进行处理。在某些时候,它被删除了,并且没有任何东西可以在线程中生成事件。

如果不手动删除,线程是否会进入无限块(使用内存但没有 cpu)?

没有事件循环的线程

一个 QTcpServer 对象已创建并正在侦听。

QTcpServer.listen()是否阻止线程运行所有代码并自然完成?

传入的连接呢?是否必须手动轮询?

0 投票
2 回答
2227 浏览

c++ - QTcpServer 只能通过 localhost 访问

我的计算机在本地网络上的 IP 是192.168.0.100,我启动我的 QTcpServer

当我尝试使用 连接到它时netcat 192.168.0.100 1234,连接被拒绝,但netcat localhost 1234成功。

同时,如果我用 听netcat -l -p 1234,我可以同时连接192.168.0.100localhost没有任何问题。

这让我摸不着头脑,为什么会这样?

0 投票
3 回答
2857 浏览

c++ - 为什么客户端不连接到服务器?Qt

程序工作,但客户端无法连接到服务器。(我运行 2 个程序示例:客户端和服务器)。我找不到我的错误在哪里。

我写了下面的代码。如果你看一下 main 函数,你会看到我想要做什么。





请帮帮我!

0 投票
1 回答
735 浏览

qt - telnet 客户端未连接 - 到 QTCPserver

为什么我无法使用 telnet 客户端连接到在我的本地主机上运行的服务器?
我正在使用 windows-7 并且在控制面板中打开了 telnet 客户端。

请建议如何使它工作?

tcp server 是在 tcpserver 对象中创建的:---

// tcpserver 的公共槽 - 线程

服务器新连接代码:---

现在我在 telnet 中输入命令:----

我可以让我的服务器进入侦听模式,因为打印了以下语句:-

但是为什么 telnet 客户端无法连接到在 localhost & PORT = 5000 上运行的服务器?

0 投票
1 回答
233 浏览

ssl-certificate - 尝试访问 QSslSocket 函数时服务器崩溃

所以我正在 QTCreator 中开发一个非常基本的服务器/客户端。当客户端尝试连接时,我应该让服务器将证书发送给客户端。我在服务器中有以下代码:

tcpSocket->setPrivateKey(ssl_Key); 导致崩溃。tcpSocket->setPrivateKey(key); 不会导致崩溃,尽管我认为这是不正确的....与 tcpSocket->setLocalCertificate(); 的处理相同;

有任何想法吗??顺便说一句,在这个位置 tcpSocket->flush() 也会崩溃...谢谢提前

0 投票
1 回答
1121 浏览

qt - QTcpServer -- 如何停止客户端线程

我的 gui 有两个按钮,一个用于启动服务器,另一个用于停止服务器。

Brief:---
一旦服务器启动,在每个新的客户端请求上,我都会创建一个新线程,这将处理与客户端的通信。

Detail:--按下
start button,我正在创建一个对象“ tcpserverobjectWrapper”,该对象创建另一个对象“ tcpserverobject”,此对象创建一个 Qtcpserver。现在这个 Qtcpserver 正在列出新的连接。当一个新的连接到来时,我创建一个' TcpSocketThreadWrapperObject'对象,它创建一个线程&这个线程处理与客户端的通信。' tcpserverobject' 还保留了创建的新客户端请求对象的列表 ' QList<TcpSocketThreadWrapperObject *> TcpSocketThreadWrapperObjectList;' 。

我能够从 telnet 客户端连接到服务器,它为每个客户端创建新线程并且工作正常。

stop button按下时,我能够停止服务器和客户端线程。

但我在two problems这里:---
1> 每次客户端向服务器发送一些数据。我得到这种QsocketNotifier. 这是什么 ?

2> 如果我按下 GUI 上的停止按钮,我可以成功停止线程。

STOP command但是,当客户端将“ ”发送到服务器或使用服务器时,如何停止线程并删除为每个客户端创建的对象closes the connection
我还必须删除在每个客户端请求上创建的以下对象?
客户端请求 --> TcpSocketThreadWrapperObject -- 创建 --> TcpSocketThreadObject -- 创建 --> TcpSocketThreadObject

有人可以建议如何解决上述两个问题吗?对此的回复将不胜感激。

这是代码:---

================= 开始和停止按钮处理程序 =====

======== tcpserverobjectWrapper 类 ================

========== tcpserverobject 对象 ==================

============ TcpSocketThreadWrapperObject ==============

======== TcpSocketThreadObject 对象 ========

======= 一个连接到服务器的客户端的输出 =====