如何确保从QLocalSocket读取的数据具有正确的顺序/大小/周期性?

时间:2019-05-06 13:14:44

标签: qt qt5 ipc

我有一个QWidget持有一个QProcess,小部件通讯将通过QLocalServer / QLocalSocket进行子处理。

为简化问题,假设在小部件拥有的子进程中运行的程序将随时通过QLocalSocket写入一个整数(4字节)。

保存子流程的小部件通过readyRead信号将自己与流程连接

localSocket = localServer->nextPendingConnection();

connect(localSocket, &QLocalSocket::readyRead, this, &StationWidget::onChildProcessSignal);

但是,在函数onChildProcessSignal中,我发现无法对通过套接字读取的序列做任何假设,byteAvailable的范围可以从4到20。

我尝试在QLocalSocket::flush之后立即调用QLocalSocket::write,但是,似乎对这种情况(Windows系统)没有任何帮助。

因此,我应该使用什么方法来确保数据按顺序输入,并且每个数据包一次为4字节。其他IPC技术能否做得更好?

0 个答案:

没有答案