这对您没有太大帮助,但是从技术上讲,您提出的两个解决方案都不正确。OutputStream.flush()以及您可以想到的任何其他API调用都不会做您需要的事情。
确定对等方是否已接收到数据包的唯一可移植且可靠的方法是等待对等方的确认。该确认可以是实际响应,也可以是正常的套接字关闭。故事的结尾-
确实没有其他方法,而且这不是Java特定的-这是基本的网络编程。
如果这不是持久连接-也就是说,如果您只是发送一些东西然后关闭连接-
这样做的方式是捕获所有IOExceptions(它们中的任何一个都指示错误),然后执行正常的套接字关闭:
1. socket.shutdownOutput();2. wait for inputStream.read() to return -1, indicating the peer has also shutdown its socket



