服务端:
package cn.itcast.uploadeserverthreader.demo;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class ServerthreadDemo {
public static void main(String[] args) throws IOException {
ServerSocket ss=new ServerSocket(10069);
while(true) {
Socket s=ss.accept();
new Thread(new TaskDemo(s)).start();
}
}
}
线程任务:
package cn.itcast.uploadeserverthreader.demo;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.net.Socket;
public class TaskDemo implements Runnable {
private Socket s;
public TaskDemo(Socket s) {
super();
this.s = s;
}
@Override
public void run() {
int count=0;
System.out.println(s.getInetAddress().getHostAddress()+"connnected.......");
try {
BufferedInputStream burin=new BufferedInputStream(s.getInputStream());
File file=new File("serve.mp3");
//如果文件不存在
if(!file.exists())
file.mkdirs();
//如果文件存在
while(file.exists()) {
file=new File("serve"+(count++)+".mp3");
}
PrintStream ps=new PrintStream(new FileOutputStream(file),true);
byte[]buff=new byte[1024];
int len=-1;
while((len=burin.read(buff))!=-1) {
ps.write(buff, 0, len);
}
PrintStream psout=new PrintStream(s.getOutputStream(),true);
psout.println("上传成功");
s.close();
ps.close();
} catch (Exception e) {
// TODO: handle exception
}
}
}