QLocalSocket - 共享套接字

时间:2014-03-09 19:51:44

标签: pipe unix-socket qlocalsocket

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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