java-Socket文件上传/进度条 (三)

2014-11-24 07:28:25 · 作者: · 浏览: 1
ponent);
fWindow.setLocation(dragPoint.x - dX, dragPoint.y - dY);
}
};
}
}
/******************************************/
/******************************************/
服务器端:
1、服务器端运行程序
package wtb.fwq;
import java.net.ServerSocket;
import java.net.Socket;
import wtb.fwq.UploadThread;
public class UploadServer {
public final static String fileDir = "E:\\wtb";
public static void main(String args[]) throws Exception {
ServerSocket server = null ;
Socket client = null ;
server = new ServerSocket(8888);
while(true){
client = server.accept();
//为每个用户设置一个线程
UploadThread uft = new UploadThread(client, fileDir);
new Thread(uft).start();
}
}
}

/*************************************/
2、为每个用户设置一个线程的线程类
package wtb.fwq;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.Socket;
public class UploadThread implements Runnable {
private Socket client;
private String fileDir;
private String fileName;
public UploadThread(Socket client, String fileDir){
this.client = client;
this.fileDir = fileDir;
}
public void run(){
InputStream in = null ;
FileOutputStream fos = null;
try {
in = client.getInputStream();
DataInputStream dis = new DataInputStream(in);
fileName = dis.readUTF();
long fileLength = dis.readLong();
long xzdx = 0;
fos = new FileOutputStream(fileDir+File.separator+fileName);
byte[] buffer = new byte[1024];
int len = 0;
while ((len = dis.read(buffer)) > 0)
{
fos.write(buffer, 0, len);
xzdx += len;
}
fos.flush();
fos.close();
in.close();
client.close() ;
if(xzdx != fileLength){ //如果文件未传完,则删除传到服务器端的文件
File f = new File(fileDir+File.separator+fileName);
f.delete();
}
}catch(Exception e){
System.out.println("异常!!!!");
}
}
}
/************************/
运行结果视图:

\


摘自 天天笑一下