因此,我正在编写一个应用程序,它获取图像,并使用套接字立即将其发送到远程计算机。
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();
写入函数可以完美运行,直到最后几 KB。不发送随机数量的数据(大约 295 kb 的 300 kb 是好的)。我读到它是因为它会阻塞直到它缓冲所有数据,但它似乎并不关心数据是否真的被发送,所以 mStream.close() 被调用得太快了。如果我取消注释等待部分,它工作得很好,但我可能需要每秒调用一次以上,而且它仍然不可靠(取决于连接),所以我需要另一种方法来正确调用 close()。冲洗似乎没有做任何事情。我用错了吗?任何想法表示赞赏。谢谢。