V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
VensonEEE
V2EX  ›  Java

想做一个类似 qq 局域网 P2P 传大文件的东西,有没有成熟组件?

  •  
  •   VensonEEE · 2019-05-26 14:36:29 +08:00 · 4171 次点击
    这是一个创建于 1769 天前的主题,其中的信息可能已经有所发展或是发生改变。

    语言 java ; 自己写的老丢包,MD5 完整性老过不去,容错性不高。 求推荐

    26 条回复    2019-05-27 11:40:52 +08:00
    ppddtt
        1
    ppddtt  
       2019-05-26 14:40:39 +08:00
    libtorrent?
    Malcolm
        2
    Malcolm  
       2019-05-26 14:43:32 +08:00
    路由器,群晖,U 盘,或者 50 块钱买个 16G 的傲腾,再或者共享一个文件夹,为什么要专门写个东西?
    VensonEEE
        3
    VensonEEE  
    OP
       2019-05-26 14:43:52 +08:00
    @ppddtt 老哥,是互相传文件,无服务器中转的那种。
    webdisk
        4
    webdisk  
       2019-05-26 14:45:21 +08:00
    VensonEEE
        5
    VensonEEE  
    OP
       2019-05-26 14:45:57 +08:00
    @Malcolm 阉割的网络环境,同事之间经常互传文件和小电影。飞秋又没有 Linux 版本...
    Fazauw
        6
    Fazauw  
       2019-05-26 14:54:45 +08:00
    正常什么 ftp,http,smb 就足够。非要 p2p 的话,搞一个内网的 PT ?
    danbai
        7
    danbai  
       2019-05-26 14:57:47 +08:00
    飞鸽传书
    janus77
        8
    janus77  
       2019-05-26 14:58:27 +08:00
    ftp 就行吧
    ruimz
        9
    ruimz  
       2019-05-26 14:59:19 +08:00 via Android
    resilio sync 或者 syncthing
    VensonEEE
        10
    VensonEEE  
    OP
       2019-05-26 15:33:46 +08:00
    @danbai
    @janus77
    @ruimz 老哥们 ,局域网有一个综合事务软件 ,俺写的 ,已经集成了 oa、即时通讯等相关功能;就差这个了
    xsir2020
        11
    xsir2020  
       2019-05-26 15:41:44 +08:00
    ftp 组件现成的,你就相当于大家都离线传输了。
    oovveeaarr
        12
    oovveeaarr  
       2019-05-26 15:47:25 +08:00
    内网搭一个 tracker 或者走 dht 的 bt,实在不行还有电驴。
    muzhidianzi
        13
    muzhidianzi  
       2019-05-26 15:48:31 +08:00 via Android
    刚想说飞 Q 飞 Q 有 Linux 版本 刚用过
    lihongjie0209
        14
    lihongjie0209  
       2019-05-26 15:55:54 +08:00
    @VensonEEE 你在内网搞一个 ftp 服务器, 你的软件相当于客户端不就可以了
    winglight2016
        15
    winglight2016  
       2019-05-26 16:04:41 +08:00
    局域网有一个综合事务软件 ,俺写的 ,已经集成了 oa、即时通讯等相关功能——这些功能,应该是有个服务器的吧,为什么必须实现点对点传输呢?
    chunchu
        16
    chunchu  
       2019-05-26 16:05:51 +08:00 via iPhone
    飞鸽传书?
    JingKeWu
        17
    JingKeWu  
       2019-05-26 17:44:50 +08:00
    webrtc 啊
    iozephyr
        18
    iozephyr  
       2019-05-26 17:50:51 +08:00 via Android
    python -m SimpleHTTPServer
    CSM
        19
    CSM  
       2019-05-26 18:10:36 +08:00 via Android
    组个 IPFS 集群?
    leafleave
        20
    leafleave  
       2019-05-26 18:10:59 +08:00 via iPhone
    强烈推荐 chfs.exe
    VensonEEE
        21
    VensonEEE  
    OP
       2019-05-26 19:41:15 +08:00 via Android
    @winglight2016 用过 FTP 服务器,人多了通过中转很慢,大文件偏多,也不好清理
    lihongjie0209
        22
    lihongjie0209  
       2019-05-26 19:58:46 +08:00
    @VensonEEE
    ftp 慢是因为你的局域网慢


    至于说清理, 类似保留 7 天的这种一个定时任务搞定
    runtu2019
        23
    runtu2019  
       2019-05-26 21:26:49 +08:00
    自己写不完善主要还是传输协议问题吧,用现成的传输协议库应该没有问题
    WebDAV,ftp,scp,smb
    java 关于这几方面的库还是挺多的
    如果两端都是 linux 的话,可以用 scp 协议
    xiangyuecn
        24
    xiangyuecn  
       2019-05-26 21:44:52 +08:00
    “传大文件”。。“语言 java ; 自己写的老丢包”

    既然是自己写的,稍微改改:

    分片,每片 10m,2 个线程并行发数据,每片单独校验 hash,发完最后一片再校验一遍整个文件的 hash

    注:接收端创建一个同等大小的大文件,收到数据就写入到对应位置,省去了合并文件这个慢操作。

    (原生支持断点续传)
    ddup
        25
    ddup  
       2019-05-27 09:55:38 +08:00
    飞秋
    winglight2016
        26
    winglight2016  
       2019-05-27 11:40:52 +08:00
    @VensonEEE 带宽有限的话,点对点也解决不了多少速度问题。还有个办法就是用 btsync,这个付费版本好像支持 API 调用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2863 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 78ms · UTC 13:51 · PVG 21:51 · LAX 06:51 · JFK 09:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.