我从前天开始就在做app的头像功能,在上传头像的时候,服务器接收到的文件总是不完整,最后找到原因。
数据的传输没有问题,socket的传输采用tcp,所以很可靠。
问题出在服务器接收方,因为我是用阿里云的免费额度服务器,所以写入速度远远低于客户端传输数据的速度,所以服务器来不及接收,虽然最后还能形成一个文件,但是打不开,而且检查了一下接收文件的大小还会更小。
解决办法:
减慢客户端传输数据
在while((hasRead = inputStream.read(buffer))!=-1)
{
中增加一个
Thread.sleep(2000);//我加了1秒,还是会来不及接收,2秒的情况就可以了
write部分
}