因此,我正在编写一个应用程序,该应用程序需要一个图像,并立即使用套接字将其发送到远程计算机。
OutputStream mStream;
mStream = mySocket.getOutputStream();
/* filling header/bmbytes*/
mStream.write(header);
mStream.write(BitmapBytes);
mStream.flush(); //not working?
/*try {
wait(2000);
} catch (InterruptedException e) {
}*/
mStream.close();
写入功能可以正常工作,直到最后几千字节。不会发送随机量的数据(大约300 kb的295 kb是好的)。在我读到这是因为它一直阻塞直到缓冲所有数据为止,但似乎并不在乎是否实际发送了数据,因此mStream.close()调用得太早了。如果我取消对wait部分的注释,它会完美运行,但是我可能需要每秒调用一次以上,并且仍然不可靠(取决于连接),因此我需要另一种方式来正确调用close()。冲洗似乎没有任何作用。我使用错了吗?
任何想法表示赞赏。谢谢。
最佳答案
此代码发送所有数据。问题出在接收端。
睡觉之前,睡眠和潮红都是毫无意义的。