基于socket的文件传输

基于socket的文件传输桌面程序

git地址

个人首页

1、程序构建

程序使用javafx基于socket开发的一个java桌面程序

1、可自定义启动端口

2、可选择没包数据大小

3、可选择存放目录

4、支持客户端携带目录

5、自定义日志模块除了jdk没有引入别依赖

2、程序使用

1、启动程序 按设定开启服务

2、客户端demo

public void transClient(String path) throws Exception {
​
        File file = new File(path);
​
        File[] list = file.listFiles();
​
        int bufferSize = 1024 * 100;
​
        byte[] buf = new byte[bufferSize];
​
        for (File f : list) {
​
            try (
                    Socket socket = new Socket("127.0.0.1", 8888);
                    DataInputStream dis = new DataInputStream(new FileInputStream(f.getAbsolutePath()));
                    DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
            ) {
                //自定义追加目录
                String appendPath = "test";
                dos.writeUTF( appendPath+File.separator + f.getName());
                dos.flush();
​
                dos.writeLong(f.length());
​
                dos.flush();
​
                int len = 0;
                while ((len = dis.read(buf)) != -1) {
                    dos.write(buf, 0, len);
                }
                dos.flush();
                dis.close();
                dos.close();
                socket.close();
​
                log.info(f.getName() + "---传输完成");
            } catch (Exception e) {
                log.info(ExceptionUtils.getStackTrace(e));
            }
        }
    }

3、目录下文件遍历

 public static void loopFileByPath(List<File> list, String path) {
​
        File file = new File(path);
​
        File[] files = file.listFiles();
​
        for (File f : files) {
            if (f.isFile()) {
                list.add(f);
            } else {
                loopFileByPath(list, f.getPath());
            }
        }
    }
​
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值