Gro*_*Man 7 java sockets android outputstream
我的问题在于以下假设,我希望这些假设是正确的,因为我相信这些是我在谷歌搜索我的问题时读到的:
所以我基本上需要从我的OutputStream对象中刷新数据,以使我的应用程序正常工作.
如果您对详细信息感兴趣,请参阅以下两个链接:
.奇怪的行为:将图像从Android手机发送到Java服务器(代码工作)
通过关闭OutputStream解决了此问题.这样做会将所有数据刷新到套接字的另一端并使我的应用程序进一步工作但是这个修复很快引起了问题2 - 相应的套接字也被关闭:
您可以调用OutputStream的flush方法而不是close.从OutputStream继承的具体类将覆盖flush()以执行除了任何操作之外的其他操作(将数据写入文件或通过网络发送).
关闭套接字的 OutputStream 也会关闭套接字
真的。
OutputStream的flush()方法什么都不做
错误的。有覆盖。请参阅 Javadoc 中的FilterOutputStream.flush()、BufferedOutputStream.flush()、ObjectOutputStream.flush()、 等。所有可以在内部缓冲输出的流都有flush()方法。所有不存在的流都不会。具体来说,由 产生的输出流Socket.getOutputStream()不会被缓冲并且不会覆盖flush()。
所以你最初的问题是不存在的,所以你不需要导致问题#2 的“解决方案”。