因此,我正在编写一个应用程序,该应用程序需要一个图像,并立即使用套接字将其发送到远程计算机。

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()。冲洗似乎没有任何作用。我使用错了吗?
任何想法表示赞赏。谢谢。

最佳答案

此代码发送所有数据。问题出在接收端。

睡觉之前,睡眠和潮红都是毫无意义的。

07-24 15:54