• 上传服务器(多线程)


    package demo05;
    
    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 UPload implements Runnable {
        private Socket s;
        private FileOutputStream fos;
    
        public UPload(Socket s) {
            this.s = s;
        }
    
        public void run() {
            try {
                // 3.获取输入流
                InputStream in = s.getInputStream();
                // 4.获取文件夹,如果不存在就创建
                File f = new File("f:\aaa");
                if (!f.exists()) {
                    f.mkdirs();
                }
                // 5.创建文件输出流
                String filename = "oracle" + System.currentTimeMillis() + new Random().nextInt(99999) + ".png";
                fos = new FileOutputStream(f + File.separator + filename);
                // 6.写入数据
                byte[] b = new byte[1024];
                int len = 0;
                while ((len = in.read(b)) != -1) {
                    fos.write(b, 0, len);
                }
                
                // 服务器给客服端回复(上传成功)
                OutputStream out = s.getOutputStream();
                out.write("上传成功".getBytes());
    
            } catch (Exception ex) {
                
                ex.printStackTrace();
                
            } finally {
                
                try {
                    // 释放资源
                    fos.close();
                    s.close();
                } catch (IOException e) {
                    
                    e.printStackTrace();
                }
    
            }
    
        }
    
    }
    package demo05;
    
    import java.io.IOException;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class test {
        public static void main(String[] args) throws IOException {
            ServerSocket ser =new ServerSocket(8888);
            while(true){
            Socket s =ser.accept();
            UPload u =new UPload(s);
            Thread t =new Thread(u);
            t.start();
            }
            
        }
    }
  • 相关阅读:
    C++中的函数
    C++基本语句
    面向对象程序设计
    数据结构中的算法
    数据结构开篇
    条件编译
    文件包含
    简单的宏替换
    系统启动过程
    parted 命令学习
  • 原文地址:https://www.cnblogs.com/Jxliu/p/9253430.html
Copyright © 2020-2023  润新知