线程类
服务器端要用到线程,每次有文件上传都要用到这个类,所以最好将这个类抽离出来专门处理文件上传业务的线程类。
相关代码如下:
//处理文件上传业务的线程类
public class ServerThread implements Runnable{
private Socket socket;
public ServerThread(Socket socket) {
this.socket = socket;
}
//负责获取客户端传递文件的数据,同时将数据写入到本地的某个文件中
@Override
public void run() {
//获取客户端对应的ip地址
String ip=socket.getInetAddress().getHostAddress();
//创建一个用于计数文件上传次数的变量
int count=1;
try {
//获取输入流对象
InputStream in=socket.getInputStream();
//文件对象
File parentFile=new File("E:/upload/");
//如果文件夹目录不存在自动创建此文件夹
if(!parentFile.exists()){
parentFile.mkdir();//创建此文件夹
}
//创建一个具体的File对象,将来存储客户端传递的数据,写入到此File中
//在父目录的文件夹下会生成以ip开头的文件
File file=new File(parentFile,ip+