Tcp上传文件 服务器端

来源:互联网 发布:快压mac版 编辑:程序博客网 时间:2024/05/01 14:51
import java.io.BufferedReader;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintStream;import java.net.ServerSocket;import java.net.Socket;import java.rmi.server.SocketSecurityException;public class Test7_Server {    /**     * @param args     * @throws IOException      */    public static void main(String[] args) throws IOException {        //与客户端建立连接        ServerSocket server = new ServerSocket(6060);        System.out.println("服务器已启动绑定6060端口!");        while(true){            final Socket socket = server.accept();            new Thread(){                              //采用多线程                public void run(){                    try {                              //输入输出流                        InputStream is = socket.getInputStream();                        BufferedReader br = new BufferedReader(new InputStreamReader(is));                        PrintStream ps = new PrintStream(socket.getOutputStream());                        //读取  客户端发来的文件                        String fileName = br.readLine();                        //判断服务器本地是否已有此文件                        File dir = new File("update");                        dir.mkdir();                        File file = new File(dir,fileName);                        if(file.exists()){                            ps.println("文件已经存在!");                            socket.close();                            return;                        }else {                            ps.println("文件不存在!");                        }                        //文件不存在,建立输出流                        FileOutputStream fos = new FileOutputStream(file);                        byte arr[] = new byte [8192];                        int len;                        while((len = is.read()) != -1){                            fos.write(arr,0,len);                        }                        System.out.println("文件上传完毕!");                        fos.close();                        socket.close();                    } catch (IOException e) {                        e.printStackTrace();                    }                }            }.start();        }    }}
0 0