package 网络编程;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Random;
public class 文件上传服务器端 {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
ServerSocket server=new ServerSocket(8888);
//服务器一直处于监听状态死循环accept方法
//有一个客户端上传文件就保存文件
while(true) {
Socket socket=server.accept();
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
try {
InputStream is=socket.getInputStream();
File file=new File("d:\\555\\99");
if(!file.exists()) {
file.mkdirs();
}
// 自定义一个文件命名规则:防止同名文件被覆盖
// 规则:域名+毫秒值+随机数
String fileName="itcast"+System.currentTimeMillis()+new Random().nextInt(999999)+".jpg";
FileOutputStream fos=new FileOutputStream(file+"\\"+fileName);
int len=0;
byte[] bytes=new byte[1024];
while((len=is.read(bytes))!=-1) {
fos.write(bytes, 0, len);
}
socket.getOutputStream().write("上传陈宫".getBytes());
fos.close();
socket.close();
}catch(IOException e) {
System.out.println(e);
}
}
}).start();
}
//server.close();
}
}