zoukankan      html  css  js  c++  java
  • TCP通讯协议,文件上传实现

    //TCP通讯协议,服务端文件上传实现
        public static void socketClient(File file) {
    
            try (
                    // 1. 创建流对象
                    // 1.1 创建输入流,读取本地文件
                    BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
                    // 2. 创建客户端套接字,写出到服务端
                    // 2.1 创建客户端套接字
                    Socket socket = new Socket("localhost", 6666);
                    // 2.2 创建输出流,写出到服务端
                    BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream());) {
                // 3. 写出数据
                byte[] bytes = new byte[8 * 1024];
                int len;
                while ((len = bis.read(bytes)) != -1) {
                    bos.write(bytes, 0, len);
                    bos.flush();
                }
                System.out.println("文件发送完毕!");
            } catch (FileNotFoundException e1) {
                // TODO 日志
                e1.printStackTrace();
            } catch (IOException e2) {
                // TODO 日志
                e2.printStackTrace();
            }
        }
    //TCP通讯协议,服务端文件上传实现    
    public static void socketServer(File file) {
            System.out.println("服务器启动......");
            try (
                  //1. 创建服务端Socket
                   ServerSocket serverSocket = new ServerSocket(6666);
                   //2. 建立链接
                   Socket socketAccept = serverSocket.accept();
                   //3. 创建流对象
                   //3.1 获取输入流,读取文件数据
                   BufferedInputStream bis = new BufferedInputStream(socketAccept.getInputStream());
                   //3.2 创建输出流,保存到本地
                   BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));
             ) {
                //4. 读写数据
                byte[] bytes = new byte[8 * 1024];
                int len;
                while((len = bis.read(bytes)) != -1) {
                    bos.write(bytes, 0, len);
                }
                System.out.println("上传的文件已保存!");
            } catch (IOException e) {
                // TODO 日志
                e.printStackTrace();
            }
            
        }
    //测试
    public static void main(String[] args) {
            File file = new File("D:\demo\TCP\scoketServer.png");
            socketServer(file);
        }
    File file = new File("D:/Downloads/壁纸/20200505.png");
            socketClient(file);
  • 相关阅读:
    element-ui upload 上传图片之前压缩
    字符串截取substring放法传参不同返回不同
    vue中对于图片是否正常加载的思考
    前端图片合成并下载
    vue中图相对路径引用本地图片
    js计算精度
    vue-cli定义全局过滤器
    js加减乘除运算丢失精度 前端计算金额带小数点精度丢失问题
    鼠标样式大全
    js两小时倒计时,剩余时间倒计时,倒计时
  • 原文地址:https://www.cnblogs.com/damoblog/p/13404883.html
Copyright © 2011-2022 走看看