最近在做一个通过WIFI在手机之间传输文件的功能。需要在手机之间建立一个持久的Socket
连接并利用该连接传输数据。可以一次传输一个或多个文件。
在一次传输多个文件时,遇到了一个困难:如何在接收文件时确定文件之间的边界。
为了在接收端正确的拆分文件,在传输文件时需要传输每个文件的大小。
我采用了这样一种策略:首先发送每个文件的名称和大小,然后传输文件的内容。
protected void sendFile(Socket socket, File[] files) {
long totalSize = 0;
byte buf[] = new byte[8192];
int len;
try {
if (socket.isOutputShutdown()) {
return;
}
DataOutputS