Java套接字何时发送ack?

Sha*_*yan 1 sockets tcp

我的问题是,当接收方的套接字发送ack时?在应用程序读取套接字数据时,还是底层获取数据并将其放入缓冲区时?

我想要这个,是因为我希望双方的应用程序都知道对方是否接收了该数据包。

nos*_*nos 5

发生这种情况时,取决于操作系统TCP堆栈,因为TCP向应用程序提供流,所以在进行读/写的应用程序以及通过网络和TCP ack发送的数据包之间没有保证的1:1相关性。

如果需要确保另一端已接收/处理了数据,则需要将其内置到您的应用程序协议中-例如,发送回复以表明已接收到数据。