android udp tcp传输文件,KuaiChuan: 仿茄子快传的一款文件传输应用, 涉及到Socket通信,包括TCP,UDP通信。(喜欢的给一个star, 有帮助的给一个fork, 欢迎S...

KuaiChuan(仿茄子快传)

仿茄子快传的一款文件传输应用, 涉及到Socket通信,包括TCP,UDP通信。(喜欢的给一个star, 有帮助的给一个fork, 欢迎Star和Fork ^_^)

下载 点击下载去下载应用。

效果预览

主页

home.gif

文件发送端

fs_1.gif

fs_2.gif

fs_3.gif

文件接收端

fr_1.gif

fr_2.gif

网页传(20161218新增)

w_1.gif

w_2.jpg

w_3.jpg

原理

快传有两种方式可以传输文件:

Android应用端发送到Android应用端(必须安装应用)

通过Web浏览器来实现文件的传送 (不必安装应用)

第一种方式主要是是通过设备间发送文件。 文件传输在文件发送端或者是文件接收端通过自定义协议的Socket通信来实现。由于文件接收方和文件发送方都要有文件的缩略图,这里采用了header + body的自定义协议, header部分包括了文件的信息(长度,大小,缩略图), body部分就是文件。

第二种方式主要是在android应用端架设微型Http服务器来实现文件的传输。这里可以用ftp来实现,为什么不用ftp呢?因为没有缩略图,这是重点!

测试

(必须在真机下测试)

在Android测试机 分别是 魅蓝2 与 华为 SCL-TL00, Vivo xs1 运行正常

感谢

版本

v1.0

完成了Android端到Android端的文件传输

v1.1

完成了网页传模块的功能

issue

QQ:345269374

License

Copyright 2016 mayubao

Licensed under the Apache License, Version 2.0 (the "License");

you may not use this file except in compliance with the License.

You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

这两天下了一个使用UDP传输目录内文件的程序,发出来给大家一起看看,共同进步。有问题请指教。 由于udp丢包比较厉害,因此使用了自定义的内部协议,进行双方的确认。 程序跑起来后,看网络状况,有时候会一卡一卡的。 以下是程序说明: * 本程序集成了数据导出端(服务器端)和数据导入端(客户端),使用UDP进行文件传递 * 服务器端的文件来源目录,见Tools中SOURCEPATH的设置 * 客户端的文件保存目录,见Tools中DESTINATIONPATH的设置,可以根据自己需要进行调整 * * 由于UDP存在丢包问题,因此Server和Client的通讯需要来回包进行确认,协议包头如下: * 1. "55 aa 99 01",表示客户端发起广播请求,请求服务器响应 * 2. "55 aa 99 02 + 服务器的设备名称",表示服务器接收到广播后,响应客户端请求,把此包指定IP发送客户端(此指定IP地址可以UDP广播信息包中获取) * 3. "55 aa 99 03",表示客户端接收到服务器的响应,接着向服务器指定IP请求:需要传递的文件总数目和文件总容量(单位为KB) * 4. "55 aa 99 04 + 4字节文件总数目和4字节的文件总容量",表示服务器接收到客户端的0x03请求,统计SOURCEPATH中的所有文件数目和文件总容量,发送指定IP地址的客户端 * 5. "55 aa 99 05",客户端接收到文件总数目和文件总容量,请求服务器发送文件具体内容 * 6. "55 aa 99 10 + 文件名称",服务器发送文件名称 * 7. "55 aa 99 11",客户端响应,表示接收到服务器发送的0x10包 * 8. "55 aa 99 12+文件内容",服务器端发送具体文件内容 * 9. "55 aa 99 13",客户端响应,表示接收到服务器发送的0x12包 * 10."55 aa 99 14",服务端高速客户端发送完毕 * * 注意:服务器发送0x10包后,收到客户端的0x11响应包,将把文件具体内容拆分成N个0x12包,每个包的大小见Tools.byteSize的设置,目前设置为10K, * 服务器没收到一个0x13响应包,才能继续发下一个0x12包,已放置UDP的丢包,另外每个0x12包最多发送10次而无0x13包的响应,则发送进程结束,界面提示 * * 本程序已经封装好,调用见TransportFilesActivity.java文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值