QTcpSocket::write 上的多次调用

Multiple calls on QTcpSocket::write?

本文关键字:调用 write QTcpSocket      更新时间:2023-10-16

根据这里 http://doc-snapshot.qt-project.org/4.8/qiodevice.html

QIODevice的某些子类,如QTcpSocket和QProcess,是异步的。

例如,已进行第一次写入调用以发送数据块。现在,在第一个写入调用完成之前,还进行了第二次写入调用以发送另一个数据块。

现在怎么办?在开始发送区块之前,第二个调用是否等待第一个调用完全完成?

数据至少由系统 TCP 堆栈缓冲,因此每次调用write"just"都会将新块附加到等待发送的未写入数据中。

但是,如果从 2 个未同步的线程调用write,则结果是未定义的。