1

我正在创建一个(linux)应用程序并想使用命名套接字。我相信 QLocalSocket 实现了这一点。我遗漏了一些非常基本的东西——这使得文档很难理解:

  1. QLocalSocket(Linux中的本地域套接字)是全双工的吗?那么我的应用程序会读取和写入同一个套接字以与另一个应用程序通信吗?

  2. 如果多个客户端想与我的应用程序交谈,他们可以安全地打开同一个套接字/文件吗?如果是这样,我的应用程序(或其他应用程序)如何区分哪个应用程序说了什么?所有传输都是交错的吗?

4

1 回答 1

0

您似乎缺少的元素是QLocalServer类。

首先,您的应用程序创建一个 QLocalServer 实例并通过运行 listen() 方法来启动它。这会在 Windows 上创建命名管道 (\.\pipe[name]) 或在 Linux 上创建本地域套接字文件(通常是 /tmp/[name])。然后您的其他应用程序可以使用QLocalSocket使用 connectToServer() 连接到服务器应用程序并根据需要进行通信。

于 2014-03-10T11:40:19.830 回答