我有一个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技术能否做得更好?