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);
  • 相关阅读:
    【Codeforces Round#279 Div.2】B. Queue
    210
    回溯
    HuffmanTree && HuffmanCode
    (转)STL
    2013 ACM/ICPC 长沙现场赛 A题
    不是数据库中的列,而是查询结果集中的列
    又出现新问题,所以又发现了之前的一些问题 (关于修改表单地址,要不要改回来的问题) 原因已经解决
    MyEclipse导入jquery-1.8.0.min.js等文件报错的解决方案
    为什么突然 选择删除的按钮失效???
  • 原文地址:https://www.cnblogs.com/damoblog/p/13404883.html
Copyright © 2011-2022 走看看