A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


/*
* 线程任务类
*/
public class Task implements Runnable {
        private Socket socket;

        public Task(Socket socket) {
                this.socket = socket;
        }

        @Override
        public void run() {
                try {
                        //显示一下哪个IP地址连接上的服务器
                        String ip = socket.getInetAddress().getHostAddress();
                        System.out.println("已连接的客户端IP ----" +ip);
                       
                        //1,获取客户端的Socket对象的输入流   ----  数据源
                        //InputStream is = socket.getInputStream();
                        BufferedInputStream in = new BufferedInputStream(socket.getInputStream());
                       
                        //2,创建目的地输出流
                        String fileName = ip + "("+System.currentTimeMillis()+").JPG";
                        FileOutputStream outFile = new FileOutputStream(fileName);
                        BufferedOutputStream out = new BufferedOutputStream(outFile);
                       
                        //3,把Socket输入流读到的数据, 写入到目的地文件中
                        byte[] buffer = new byte[1024];
                        int len = -1;
                        while ((len = in.read(buffer)) != -1) {
                                //写数据到目的地
                                out.write(buffer, 0, len);
                        }
                        //4,关闭操作文件的流
                        out.close();
                       
                        //5,给客户端反馈数据
                        //OutputStream os = socket.getOutputStream();
                        //OutputStreamWriter osw = new OutputStreamWriter(os);
                        //BufferedWriter bw = new BufferedWriter(osw);
                        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
                        bw.write("文件上传成功!!!!!");
                        bw.flush();
                        //6,关闭客户端的Socket流
                        socket.close();
                } catch(IOException e){
                        e.printStackTrace();
                }
        }
}

1 个回复

正序浏览
怎么没人评论呢?  写得这么好,点个赞!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马