我的问题是,当接收方的套接字发送 ack 时?是应用读取socket数据的时候还是底层拿到数据放到buffer中的时候?
我想要这个是因为我希望双方的应用程序都知道对方是否接收了数据包。
最佳答案
发生这种情况时,取决于操作系统 TCP 堆栈,因为 TCP 向应用程序提供流,所以在执行读/写操作的应用程序与在线路上发送的数据包和 TCP 确认之间没有保证 1:1 的相关性。
如果您需要确保对方已经接收/处理了您的数据,您需要将其构建到您的应用程序协议(protocol)中 - 例如发送回复说明已收到数据。
关于tcp - Java 套接字何时发送 ack?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2173153/