当我使用send()
发送数据并调用阻塞系统调用flush()
时,会刷新返回:
收到相应的TCP-ACK后?
或
?
答案 0 :(得分:0)
作为@caf注释,Linux中没有flush
系统调用。此外,Linux中没有机制等待接收TCP ACK。当您向网络send
数据进入内核的网络缓冲区时,不再提供任何保证。当内核收到并确认数据已进入远程主机上的接收窗口时,不再保证可用(严重的是它可能没有到达远程主机上的应用程序)。
如果您希望确保通过TCP发送数据,那么您应该让接收方通过发送回复来确认应用层的数据。