我想知道在流关闭之前JVM退出时是否刷新输出流,即FIN位是否已设置且另一端的InputStream是否可以处理数据,即使发送的数据可能是也可能不是畸形?我确切需要的是,我想知道请求是否已成功发送。
答案 0 :(得分:2)
我想知道当JVM退出时是否会刷新输出流
没有
流关闭之前
流未关闭。任何尚未刷新的数据都将丢失。
即FIN位是否设置
这是一个完全不同的问题。操作系统将关闭套接字,发送已已刷新的剩余数据,然后发送FIN。
并且另一端的InputStream可以处理数据,即使发送的数据可能有错误也可能没有错误?
这取决于您的代码。 InputStream将接收已刷新的任何数据,然后是EOS。
我确切需要的是,我想知道请求是否已经存在 发送成功。
那是另一个,完全不同,再次重要。如果您需要知道对等应用程序已收到数据,则需要在应用程序协议中向您发送确认。
基本思想是确保应用程序关闭您的流。