# filetrans **Repository Path**: polunzi/filetrans ## Basic Information - **Project Name**: filetrans - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-07-22 - **Last Updated**: 2023-02-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README **thrif** [THRIF] **文件传输** 通过tcp/ip协议, 上层自定义协议 client 向 服务器发送文件 **自定义协议相关信息:** 自定义协议 1. int 4byte 文件数量 2. data 2.1.1 int 4byte fileName长度 2.1.2 fileName Data 2.2.1 int 4byte filePackage 长度 2.2.2 filePackageData 2.3.1 int 4byte fileContent 2.3.2 fileContent Bytes 2.4 int byte slat 所有的data都是经过 slat 进行加密的, 但是之后因为没有合适的加密算法的问题, 而舍弃了加密, 但由于自定义协议的使用, 同样可以保证数据的安全性, 除非截取方知道协议规则 但同样, 可以仿照 https 使用非对称加密来传输 加密过后的 对称加密 公钥, 双重保险 **项目描述** 本项目包含两部分, server, client 使用 bio 模式来进行流操作 server只使用了 connector 和 processor, 并没有完善的 service, host, engine组件 主线程只负责接收链接, 使用fixedLengthThreadPool 来进行异步处理, . client同样使用线程池, 以文件夹为单位创建文件查找任务, 文件查找结束后, 直接与 server进行连接, 按照协议规则发送数据 最后, 当所有任务完成后, 停止client **项目配置** 系统没有做统一配置, 所有的配置都是写到文件当中的 server: ip/port ==> com.itmuch.server.Server 要保存到的文件夹 ==> com.itmuch.utils.FileDes.BASE_PACKAGE client: server的ip/port ==> com.itmuch.client.ThrifSocket.doRealtThing0()方法中 要传输的文件夹 ==> com.itmuch.client.ThiefHttpRequest.main() **项目使用场景** 有些时候, 由于vpn,防火墙,路由器等等配置, 导致一些机器只能向外发起连接, 而不能接受外部发来的连接请求. 可以发挥想象