# zero-distance **Repository Path**: somberguy/zero-distance ## Basic Information - **Project Name**: zero-distance - **Description**: 零距离框架:提供利用P2P技术实现C2C,S2S项目的平台,使开发者快速实现业务功能,支持传输字符串,文件,视频推流等功能。框架传输协议是以完全解耦方式独立而出,默认协议借鉴RUDP思想,以及websocket第四次握手思想实现。用户可以通过实现协议标准接口重写方法,自定义传输协议。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 4 - **Created**: 2023-10-24 - **Last Updated**: 2025-08-12 ## Categories & Tags **Categories**: web-dev-toolkits **Tags**: P2P, 打洞, Java, ZDTE, ioc ## README ### ZERO DISTANCE 1. 项目所属 ``` text FHM - FOR HUMAN Born to promote human development. We hope to use technology to change the future of humanity, thereby realize the value of FHM, as well as the value of each of us, so that life is no longer empty, and that each of us can leave a declaration of 'I have come' in this world. ``` 2. 项目说明 ``` text 零距离框架: 提供利用P2P技术实现C2C,S2S项目的平台,使开发者快速实现业务功能,支持传输字符串,文件,视频推流等功能。 框架传输协议是以完全解耦方式独立而出,默认协议借鉴RUDP思想,以及websocket第四次握手思想实现。 用户可以通过实现协议标准接口重写方法,自定义传输协议。 ``` 3. 项目架构图 绘制中 4. 项目目录说明 ``` text zdte-substrate: 控制反转,配置自动管理 zdte-common: 服务端和客户端公用代码,传输协议标准规定代码 zdte-protocol: 传输协议标准的实现,默认传输协议 zdte-core-client: 客户端api zdte-core-server: 服务端api ``` 5. 协议说明 ``` text 名称:RUDP-FHM(Reliable UDP - FOR HUMAN) 发送: versio: 1.0 //协议版本 secret-key: //密钥 ack: 0 //应答 from-to: //s->c c->c c->s serial-number: //序号 0 表未分包 packet-number: //数据包编号 唯一性 UUID packet-type: //数据包用途 建立连接(connet) 消息(message) 文件(file) 视频(video) file-fomat: //文件格式 在数据包为文件时可用 其他情况为空即可 content-type: //文本如何解析 str 表示字符串(不可以序列化) json 表示支持json序列化 content-len: //文本长度 content: //文本内容 应答: version: 1.0 //协议版本 accpet-key: //应答:密钥 + 盐 -> SHA-1加密 -> Base64 盐可以自定义为 258EAFA5-E914-47DA-95CA-C5AB0DC85B11 UUID 发送和应答盐必须相同 ack: 1 //应答 表示接受到 serial-number: //序号 packet-number: //数据包编号 唯一性 注意: packet-type: connet && from-to: c->c ack: -1 表示不需要应答 由于mtu限制,现规定RUDP-FHM数据包不超过1400字节,超过进行分包处理 ``` 6. 测试 ``` text // 17 18 790 //11:18:26.467 [main] INFO org.fhm.fsc.org.fhm.zdte.client.ClientStarter - end, 333333 // 150kb/s 带宽2M云服务器 20:32:41.696 [main] INFO org.fhm.fsc.org.fhm.zdte.client.ClientStarter - end, 333333 20:36:51.125 [main] INFO org.fhm.fsc.org.fhm.zdte.client.ClientStarter - end, 333333 20:41:05.664 [main] INFO org.fhm.fsc.org.fhm.zdte.client.ClientStarter - end, 333333 20:45:37.845 [main] INFO org.fhm.fsc.org.fhm.zdte.client.ClientStarter - end, 333333 20:50:28.956 [main] INFO org.fhm.fsc.org.fhm.zdte.client.ClientStarter - end, 333333 20:55:27.240 [main] INFO org.fhm.fsc.org.fhm.zdte.client.ClientStarter - end, 333333 190 ```