问题标签 [qlocalserver]

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

c++ - Qt 5.2:QLocalServer 接收重复的 readyRead 信号

我对设计一个简单的 QLocalServer-QLocalSocket IPC 系统的问题感到困惑。

QLocalServer 等待新连接并将信号连接到正确的插槽。

这个 readAll 是有意完成的,以检查我如何按顺序获得两个 readyRead 信号(来自同一个插槽指针,我验证了这一点)。

客户端操作相当简单:

_socket->write(data)调用会在服务器上触发重复的 readyRead(即使服务器端已通过 ReadAll 调用读取了所有数据)。

任何迹象表明我应该在哪里看?

0 投票
1 回答
565 浏览

c++ - QLocalServer 不会启动传入连接

我正在 Qt 中创建一个简单的 QSocketServer。套接字开始侦听,但incomingConnection 方法似乎从未运行。有人可以解释这里有什么问题吗?

主要的:

管道服务器.h

管道服务器.cpp

我看到 STARTED 消息,但在运行时从未看到 NEW CONNECTION:

socat -v READLINE unix-connect:/tmp/test.sock

谁能告诉我为什么incomingConnection 没有触发?

- 更新:只是为了好玩,我将一个方法连接到 newConnection 信号中,当我连接时该方法会触发。那么为什么没有调用incomingConnection 方法呢?

0 投票
0 回答
1237 浏览

c++ - 使用 Qt 在自定义位置创建本地套接字

我正在使用 QLocalServer 创建一个本地套接字,以便其他进程可以连接到我的 Qt 应用程序。我的问题是 Qt 似乎/tmp/很想在XDG_RUNTIME_DIR.

如果我使用:

然后在 中创建套接字/tmp/,但是如果我尝试指定绝对或相对路径,那么 Qt 似乎根本不会费心创建套接字。

编辑:仔细检查后,设置套接字文件权限的 setSocketOptions(QLocalServer::UserAccessOption) 是阻止我指定套接字路径的原因。注释掉这一行会消除限制。但这肯定不是 Qt 的预期行为方式吗?

0 投票
1 回答
494 浏览

c++ - 当字节不可用时,QLocalServer 发出 readyRead

我正在尝试在本地 OSX 10.11 中启动 QLocalServer。

我有客户端尝试循环连接到服务器:

当此代码运行时,我尝试在另一个应用程序中启动 QLocalServer:

为什么调用 readyRead 时,字节不可用?

0 投票
0 回答
152 浏览

linux - 是否可以从 QLocalSocket 连接中获取 PID?

我正在构建一个客户端/服务器架构,其中客户端进程可以使用本地 Unix 域套接字连接到服务器。

服务器进程在 Qt 中实现,使用 QLocalServer 和 QLocalSocket 来维护服务器端的连接。

有没有办法直接从连接信息中获取连接客户端进程的PID?我不想相信客户端通过套接字连接告诉我它的 PID,因为客户端可能会尝试欺骗另一个进程的 PID。

0 投票
1 回答
203 浏览

memory - QLocalServer/QLocalSocket 内存泄漏

我在使用 QLocalServer/QLocalSocket 时遇到了一些问题。

我正在将原始像素数据从服务器发送到客户端,并且在处理过程中存在巨大的内存泄漏。但我不知道是什么原因...

内存增加约 20MB/1 秒(当我在系统管理员那里检查时。)

以下是我的代码。

服务器

客户

这两个代码可以很好地交流,但记忆会急剧增加,当超过一定水平时就会终止。

我试过像connection->reset() 或 QByteArray::clear()..etc但它不起作用。

我的问题有什么想法吗?

使用QTcpServer/QTcpSocket怎么样?这可以解决我的问题??

请分享你的想法。谢谢!!

0 投票
1 回答
951 浏览

qt - 在关闭之前将数据作为客户端发送到 QLocalServer 的问题

我正在学习 Qt,并且在关闭客户端应用程序之前向 QLocalServer 发送一些数据时遇到了一些麻烦。在示例中,我尝试发送“再见”两次。但在服务器端,我只收到过一次。无论客户端在关闭前发送多少次,服务器都会收到唯一的第一条消息。如果我使用 QCloseEvent,则结果是相同的。也许我做错了什么?谢谢你的帮助!

简化服务器示例

那是客户的例子

0 投票
1 回答
149 浏览

qt - 将异步 QLocalServer 与 QEventLoop 一起使用

我想QLocalServer在应用程序中使用不使用QCoreApplication. 据我了解,这应该使用QEventLoop

同步版本按预期工作。有没有办法使用异步方式QLocalServer

编辑:这是一个基本的版本:

问候,

0 投票
1 回答
195 浏览

qt - 从其他线程关闭阻塞 QLocalServer

QLocalServer在线程中运行阻塞:

如何从另一个线程关闭服务器?或者是使用非阻塞事件的唯一方法?

问候,

0 投票
0 回答
144 浏览

qt - QLocalSocket 问题继续向 QLocalServer 发送数据

我正在尝试将一些数据从 QLocalSocket 循环发送到 QLocalSever。服务器只获取第一个数据而不接收后续数据,但是如果我在客户端的每次调用之间引入 1 mec 延迟,则服务器开始接收所有内容。请查看以下客户端和服务器代码。

客户端.cpp

服务器.cpp

来自 qt doc,据说

readyRead() 不会递归发出;如果您重新进入事件循环或在连接到 readyRead() 信号的插槽内调用 waitForReadyRead(),则不会重新发送该信号(尽管 waitForReadyRead() 仍可能返回 true)。

这是我的问题吗?添加计时器是这里唯一的解决方案吗?

你可以编译这个测试项目-> http://www.filedropper.com/testsocket