我使用DataOutputStream
在网络上这样的传输数据:等待套接字数据传输
Socket socket = new Socket(ipAddress, port);
DataOutputStream dataOutputStream = new DataOutputStream(
socket.getOutputStream());
dataOutputStream.writeBytes("Stackoverflow");
// ...
System.exit(0);
如果我的应用程序终止太早,传输将被中止,因此失败,因为不是所有的数据都有在那时已经发送。
为了解决这个问题,我可以手动等待一段时间终止前:
try
{
Thread.sleep(1000);
} catch (InterruptedException e)
{
e.printStackTrace();
}
然而,这种解决方案是坏的。在终止我的应用程序之前,是否有一些确保所有数据已经发送的“最佳实践”方法?
编辑:
我无权访问服务器代码。
在网络代码中添加睡眠并不能完成任何操作。只要您正确关闭插座,数据就会到达。你确定问题不在另一端吗? – EJP
问题可能确实存在于另一端,但仍可能有解决此问题的方法。 – BullyWiiPlaza