JAVA_服务端多线程任务

服务端:

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
		}
			
	}

}

猜你喜欢

转载自blog.csdn.net/TDOA1024/article/details/82855970
今日推荐