Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pipe QLocalSocket-共享套接字_Pipe_Unix Socket_Qlocalsocket - Fatal编程技术网

Pipe QLocalSocket-共享套接字

Pipe QLocalSocket-共享套接字,pipe,unix-socket,qlocalsocket,Pipe,Unix Socket,Qlocalsocket,我正在创建一个(linux)应用程序,希望使用命名套接字。我相信QLocalSocket实现了这一点。我遗漏了一些非常基本的东西,这使我很难理解文档: QLocalSocket(Linux中的本地域套接字)是全双工的吗?那么,我的应用程序是否会读写同一个套接字以与另一个应用程序通话 如果多个客户端想要与我的应用程序通话,它们能否安全地打开同一个套接字/文件?如果是,我的应用程序(或其他应用程序)如何区分哪个应用程序说了什么?所有传输都是交织的吗 您似乎缺少的元素是类 首先,应用程序创建一个QLo

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

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

  • 如果多个客户端想要与我的应用程序通话,它们能否安全地打开同一个套接字/文件?如果是,我的应用程序(或其他应用程序)如何区分哪个应用程序说了什么?所有传输都是交织的吗


  • 您似乎缺少的元素是类


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

    假设有两个其他应用程序连接到此QLocalSocket。我的服务器应用程序如何区分哪些信息cam和哪些应用程序?QLocalSocket是否为每个连接启动一个线程?QLocalServer和QLocalSocket可以分别以与QTcpServer和QTcpSocket相同的方式来看待。如果您希望您的“服务器”应用程序知道哪个“客户端”应用程序已连接/正在向其发送数据,则当客户端建立连接时,您需要从客户端向服务器发送某种形式的描述消息。您可以在服务器上执行incomingConnection(我建议查看Qt文档中的fortune cookie示例)我现在看到我的套接字文件(在/tmp/myserver中)-如何测试它?我看到了适用于linux的socat程序,但参数有问题