我试图了解本地套接字(Unix 域套接字)是如何工作的,特别是如何将它们与 QT 一起使用。据我了解,Unix 域套接字始终可靠且不会丢失任何数据。查看这些示例,这些是步骤(使其变得简单),考虑到服务器(生产者)和客户端(消费者)..
- qLocalServer(在服务器上)创建一个套接字,将其绑定到已知位置并监听传入连接。
- 一个 qLocalSocket(在客户端)连接到已知位置。在服务器上连接被接受。
write
服务器可以使用方法(qLocalSocket
返回的实例的qLocalServer->nextPendingConnection()
)向套接字发送数据
当套接字缓冲区已满时,一旦客户端从套接字读取并释放套接字缓冲区,服务器的任何写入都会被阻止。这是我不明白的部分:假设套接字缓冲区已满并且服务器一直在写入..所有这些数据都存储在哪里以及如何控制保存这些数据的数据结构?有没有办法丢弃这些数据?想象一个服务器以 20 次/秒的速度产生数据,而一个客户端以 1 次/秒的速度消耗数据,我想删除中间的所有数据(比我的用例中的所有数据更好的实时数据)。